String str = "中国";

System.out.println(str.length());
       我以为输出结果是 4 ,想不到会是 2 ,有点弄不明白... String str = "zg";

System.out.println(str.length());
此时输出也是2. 
为什么这样的。 记忆中中文不是占 2个字节吗?

解决方案 »

  1.   

    这个不能这样算得。------------呵呵 测试一下搜狗的云输入法看看好不好用呵呵 其实这个.length和按照什么方式存储,占几个字节存储无关的。
    比如 一个总共占多少个字节吗?
    List  难道这个list的size 要去计算list中的数据试一试这样看看行不行:
    String tesStr = “中国我爱你”;
    int length = tesStr.getBytes().length;
      

  2.   

    length求的是字符的个数,不是字节数
      

  3.   


    package test;public class TestChar { /**
     * @param args
     */
    public static void main(String[] args) { String str = "中国";
    String aa  = "aa";
    System.out.println(str + "的字节数:  " + str.getBytes().length);
    System.out.println(aa +  "的字节数:  " + aa.getBytes().length); }}求字节数当然要转成byte了
      

  4.   

    Java 是采用 Unicode 进行设计的,所以不管是半角字母、全角字母、数字、汉字,其他 Unicode 文字,都是按 1 个字符进行计算。