作用: 返回代码点数量。
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()) 返回的是代码点长度
。
标签:endIndex,string,字符,int,代码,char,length,源码,长度 From: https://blog.51cto.com/u_13002884/5894581