比如"java中国“
getByte之前  最大索引为5,若截取索引号为3到5.截取的是
             "java中"
getByte之后,最大索引变为8,若截取索引号为3到5,就会
      截取"a+“中”(两个字节)的前一半字节。
这样“中”字就不会显示出来。上面是指定的索引范围。
有人会说数一下范围不就知道了。
现在的问题是任意截断。要显示出来中文的效果。
(若截到中文的前一个字节,那样中文中显示不出来,就要显示整个中文来, 注意:先要用getByte())

解决方案 »

  1.   

    我是新手,想问问getByte()之后怎么取3到5的值?getByte之后不是返回类型为byte[]了吗?如果toString()也不能达到预期效果啊,不要笑我哦
      

  2.   

    String(byte[] bytes) 
    String(byte[] bytes, String charsetName)
      

  3.   

    public static void main(String[] args) {
      String ttt = "java中国";
      int len = ttt.length();
      System.out.println (len);
      System.out.println (ttt.substring(3, len));
    }结果:
    6
    a中国-----------------------------------lz是不是看错了?还是你的操作系统不是简体中文?
      

  4.   

    String s = "java中国";
            System.out.println(s.length());
            System.out.println("截取之前: "+s.substring(3,5));
            System.out.println(s.getBytes().length);
            System.out.println("转换后截取:"+new String(s.getBytes()).substring(3,5));
    结果:
    6
    截取之前: a中
    8
    转换后截取:a中
    没出现LZ说的现象啊?!难道我理解错误了?
      

  5.   

    System.out.println("转换后截取:"+new String(s.getBytes(), 3, 2));