String.length()和String.getBytes().length的区别

阅读 59

2022-04-20

String.length() 是表示字符串所需的UTF-8代码单元的数量
String.getBytes().length 是在默认编码中表示字符串所需的字节数

举例说明:

    public static void main(String[] args) {
        String utf="张";
        System.out.println("字符串长度="+utf.length()+",字符串字节"+utf.getBytes(Charset.forName("UTF-8")).length);
        System.out.println("字符串长度="+utf.length()+",字符串字节"+utf.getBytes(Charset.forName("GBK")).length);
    }

输出结果:

字符串长度=1,字符串字节3
字符串长度=1,字符串字节2

总结:

UTF编码方式中一个汉字三个字节、GBK编码方式中一个汉字两个字节,UTF/GBK其余都是一个字节.

精彩评论(0)

0 0 举报