java jdk设置字符集_使用JDK 11在Java字符串上的新方法

java jdk设置字符集

Java的String类似乎将在JDK 11中获得一些新方法,该方法将于2018年9月发布。

错误号 错误标题 新的String方法 描述
JDK-8200425 字符串::行 lines() “使用专用的分隔符从源字符串中懒散地提供行的字符串实例方法。”
JDK-8200378 String :: strip,String :: stripLeading,String :: stripTrailing strip() trim()的 “ Unicode感知”演变
stripLeading() “从一开始就删除Unicode空白”
stripTrailing() “从……端删除Unicode空白”
JDK-8200437 字符串:: isBlank isBlank() “如果字符串为空或仅包含空格,则返回true的实例方法”

可以在core-libs-dev邮件列表上的请求“ 兼容性和规范审查 ”(CSR)的消息中找到与这些方法有关的进展证据:

这五个新方法中的四个的一个共同特征是,它们使用与旧方法(例如String.trim())不同的(较新的)“空白”定义。 错误JDK-8200373 [“ String :: trim JavaDoc应该澄清空间的含义”]甚至针对String.trim()方法( 邮件列表查看请求 )解决了这个问题:


当前针对String :: trim的JavaDoc并未明确说明代码中使用了哪个“空格”定义。 随着不久的将来会出现其他使用不同空间定义的修整方法,因此有必要进行澄清。 String :: trim使用空格的定义作为小于或等于空格字符代码点(\ u0040)的任何代码点。较新的修整方法将使用(空格)的定义作为任何传递给参数时返回true的代码点。字符:: isWhitespace谓词。

JDK 1.1中将isWhitespace(char)方法添加到Character中 ,但是直到JDK 1.5才将isWhitespace(int)方法引入Character类中。 添加了后一种方法(该方法接受一个int类型的参数)以支持补充字符针对Character类Javadoc注释定义了补充字符 (通常以基于int的“代码点”为模型)与BMP字符 (通常以单个字符为模型):


从U + 0000到U + FFFF的字符集有时被称为基本多语言平面(BMP) 代码点大于U + FFFF的字符称为补充字符 Java平台在char数组以及StringStringBuffer类中使用UTF-16表示形式。 在此表示形式中,补充字符表示为一对char值...因此, char值表示基本多语言平面(BMP)代码点,包括替代代码点或UTF-16编码的代码单元。 一个int值表示所有Unicode代码点,包括补充代码点。 仅接受char值的方法不能支持补充字符。 接受int值的方法支持所有Unicode字符,包括补充字符。

我在上面的引用中添加了粗体 ,以强调“ 代码点 ”的重要性,“ 代码点在Java上下文中定义为 “可以在编码字符集中使用的值”。 在JDK 11中为String提出的五个新方法中,有四个在很大程度上依赖于Character.isWhitespace(int)包含的概念来确定如何“修剪”给定的字符串或确定给定的字符串是否“空白”。

说到Unicode,还建议将 JEP 327 [“ Unicode 10”] 添加到JDK 11中。 正如JEP所说,其目的是“升级现有平台API以支持Unicode标准 10.0版 。” 对于任何希望使用此新版本支持的“ 56个新 表情符号字符”的人来说,这将是一个特别令人振奋的消息。

结论

当前针对JDK 11提出的String新方法提供了一种更一致的方法来处理字符串中的空白,从而可以更好地处理国际化;提供了仅在字符串开头或字符串结尾处修剪空白的方法,并提供了专门用于原始字符串文字的方法

翻译自: https://www.javacodegeeks.com/2018/05/new-methods-on-java-string-with-jdk-11.html

java jdk设置字符集

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值