Java字符串中有多少个字符多少个char、字节

Java 中Char是两个字节,Char在Java中也被称为代码单元(Code Unit)
Java中的字符代码点(Code Unit)一 一对应,而可能对应一个或者两个 代码单元

字符串的length()方法,能获取代码单元的长度,或者说char的个数
也就是说,length()方法的返回值可能大于实际字符个数

class Main {
    public static void main(String[] args) {
        String he = "⑪1曦👩";	// 这里,这个emoji表情需要两个char
        System.out.println("代码单元:"+he.length());
        // 输出比实际的字符长度 长
        // 如果乘以2,就可以得到实际的字节大小
        System.out.println("码点:"+he.codePointCount(0, he.length()));
        // 可以看到,这样才能得到字符串的实际字符个数
        System.out.println(he.charAt(0));
        System.out.println(he.charAt(1));
        System.out.println(he.charAt(2));
        
        System.out.println(he.charAt(3));
        System.out.println(he.charAt(4));
        // 这两个char都只是一个码点的一部分,所以无法正常显示
        System.out.println("----------------------");
    }
}

输出:

代码单元:5
码点:4
⑪
1
曦
?
?
----------------------

参考

一个Java字符串中到底有多少个字符? | 鸟窝

posted @ 2020-07-27 11:43  夕雨714  阅读(1015)  评论(0编辑  收藏  举报