leftso 1703 0 2018-07-10 09:48:16

文章位置:左搜> 编程技术> 正文
JDK11 Java String 新增方法
Java的String类可能会获得一些JDK 11的新方法,预计将于2018年9月发布。
 
BUG# BUG TITLE String方法 描述
JDK-8200425 字符串::线 lines() “字符串实例方法,它使用专门的Spliterator来懒惰地提供源字符串中的行。”
JDK-8200378 String :: strip,String :: stripLeading,String :: stripTrailing strip() “Unicode-aware” 修饰的演变()
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不清楚代码中使用了“space”的哪个定义。随着近期使用不同空间定义的修剪方法,澄清是必不可少的。String :: trim使用space的定义作为小于或等于空格字符代码点的任何代码点(\ u0040。)较新的修剪方法将使用(白色)空间的定义作为传递给传递给它时返回true的任何代码点。 Character :: isWhitespace谓词。
 
方法isWhitespace(char)被添加到带有JDK 1.1的Character中,但是方法isWhitespace(int)JDK 1.5之前没有被引入到Character类中。后一种方法(接受类型参数的方法)被添加以支持补充字符Character类Javadoc注释定义了补充字符(通常使用基于int的“代码点” 建模)与BMP字符(通常使用单个字符建模):int

从U + 0000到U + FFFF的字符集有时被称为  基本多语言平面(BMP)。代码点大于U + FFFF的字符称为  增补字符。Java平台在char数组String和  StringBuffer类中使用UTF-16表示  。在该表示中,补充字符被表示为一对  char值...  char因此,值表示基本多语言平面(BMP)代码点,包括代理代码点或UTF-16编码的代码单元。一个  int值表示所有Unicode代码点,包括增补代码点。...  仅接受char值的方法不能支持补充字符。...  接受int值的方法支持所有Unicode字符,包括补充字符。
 
我在上面的引用中加入了大胆的强调,以强调“ 代码点 ” 的重要性,它为Java上下文定义为 “可以在编码字符集中使用的值”。String在JDK 11中提出的五种新方法中有四种在很大程度上依赖于体现的概念Character.isWhitespace(int)来确定如何“修剪”给定字符串或确定给定字符串是否为“空白”。
说到Unicode,JEP 327 [“Unicode 10”]也被提议添加到JDK 11中。作为该JEP状态,其原意是“升级现有的平台API,支持10.0版本中的Unicode标准。”这将是希望用“工作的人尤其是令人兴奋的消息了56个新 的表情符号通过这个新版本支持的字符”。

总结

String目前针对JDK 11提出的新方法提供了一种更一致的方法来处理字符串中的空白区域,可以更好地处理国际化,提供仅在字符串的开头或字符串的末尾修剪空白的方法,并提供方法特别适用于即将出现的原始字符串文字
 
编程技术