[Java Core]Java字符串的代码点和代码单元
Java Core的3.6.6有关代码点和代码单元的概念可能让很多同学迷惑,在这里做一点说明。
Java char数据类型实际上采用UTF-16编码表示的Unicode的代码单元
</pre><pre name="code" class="java">String str = "你好!";
这里str中的第一个代码单元是“你”。通常来讲,基本字符用一个char表示,辅助字符使用一对char表示。
所以str实际上是3个代码单元组成。
System.out.println(ss.codePointCount(0, ss.length())); //3
而代码点就是这这个代码单元在UTF-16字符集中的编号,
System.out.println(ss.codePointAt(0));//20320
‘你’打印出来是20320, 也就是‘你’的Unicode十六进制编码\u4f60十进制数。