请看以下代码:
String name1="abc";
System.out.println(name1.length());
String name2="我是谁";
System.out.println(name2.length());
为什么打印结果都是3?
第二个的打印结果应该是6才对,因为一个汉字占两个字节呀。
请帮我解和答,谢谢!

解决方案 »

  1.   


    String str1="呵呵";
    System.out.println(str1.length());
    System.out.println(str1.getBytes().length);结果是:
    2
    4
    不知你看明白了吗!
      

  2.   

    java String是unicode 字符序列,其length()方法返回的是字符的数量。“我是谁”是3个字符,所以返回3。楼主要看字符串占多少字节,用3楼的方法。(个人理解)。
      

  3.   

    java中,一个汉字对于一个字符,一个字符的长度是两个字节