Java Unicode
基本字符的范围为:U+0000 ~ U+FFFF
辅助字符的范围为:U+100000 ~ U+10FFFF
这些映射字符的编号就称之为“Code Point”
字节、码点和字符的关系

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| char supportCh = 'a';
String supportStr1 = "abc"; String supportStr2 = "😊bc";
System.out.println(supportStr1.charAt(0)); System.out.println(supportStr2.charAt(0));
System.out.println(supportStr1.length()); System.out.println(supportStr2.length());
System.out.println(supportStr1.codePointCount(0, supportStr1.length())); System.out.println(supportStr2.codePointCount(0, supportStr2.length()));
System.out.println(Arrays.toString(supportStr1.codePoints().toArray())); System.out.println(Arrays.toString(supportStr2.codePoints().toArray()));
System.out.println(Character.isSupplementaryCodePoint(97)); System.out.println(Character.isSupplementaryCodePoint(128522));
System.out.println(Character.isSurrogate(supportStr2.charAt(0))); System.out.println(Character.isSurrogate(supportStr2.charAt(1))); System.out.println(Character.isSurrogate(supportStr2.charAt(3)));
|
拓展阅读:Java 的字符编解码及CodePoint · 奔跑的锅炉 (boileryao.com)