0
点赞
收藏
分享

微信扫一扫

jdk源码之String 中 codePointCount(int beginIndex, int endIndex) 方法作用


作用: 返回代码点数量。

string代表一个字符串

大多时候 string.length()  和 codePointCount(0,string.length())  返回的结果是一致的。

返回的也是长度。

 

但是!!!

增补字符,即代码点为 U+10000~U+10FFFF 的字符,这是 Unicode 5.0 中新增的代码点字符。

在 Java 中一个 Unicode 字符是使用 UTF-16 编码的 char 进行表示的,也就是一个 char 只能表示 U+0000~U+FFFF 的 Unicode 基本字符(BMP)。因此在 Java 中需要表示 U+10000~U+10FFFF 的字符需要使用 一对代理字符进行表示,高代理字符的范围为 U+D800~U+DBFF,低代理字符的范围为 U+DC00~U+DFFF。比如表示 U+10400 的字符需要两个 char(U+D801, U+DC00)才能表示,这时的代码点长度为 1,而代码单元长度为 2

 

string.length() 返回的是代码单元长度

codePointCount(0,string.length()) 返回的是代码点长度

 

 

举报

相关推荐

0 条评论