public class chun{
    public static void main(String args[ ]){
        byte d[]="YOUIHE你我他".getBytes();
        System.out.println("数组d的长度是(一个汉字占两个字节):"+d.length);
        String s=new String(d,6,2);
        System.out.println(s);
    }
}
理论上的输出结果应该是:
数组d的长度是(一个汉字占两个字节):12 
你           
可是实际的输出结果是:
数组d的长度是(一个汉字占两个字节):15
哪位告诉我,是怎么回事呢??谢谢

解决方案 »

  1.   

    和编码方式有关系
    你用的是utf-8编码,一个汉字有3个字节
      

  2.   


    引用 1 楼 hitzsf 的回复:和编码方式有关系
    你用的是utf-8编码,一个汉字有3个字节1楼是正解
      

  3.   

    byte d[]="YOUIHE你我他".getBytes("GB2312");
    然后,再打印看看
      

  4.   

    java默认的编码根据操作系统来的,可以认为你的操作系统默认为utf编码