比如"java中国“
getByte之前 最大索引为5,若截取索引号为3到5.截取的是
"java中"
getByte之后,最大索引变为8,若截取索引号为3到5,就会
截取"a+“中”(两个字节)的前一半字节。
这样“中”字就不会显示出来。上面是指定的索引范围。
有人会说数一下范围不就知道了。
现在的问题是任意截断。要显示出来中文的效果。
(若截到中文的前一个字节,那样中文中显示不出来,就要显示整个中文来, 注意:先要用getByte())
getByte之前 最大索引为5,若截取索引号为3到5.截取的是
"java中"
getByte之后,最大索引变为8,若截取索引号为3到5,就会
截取"a+“中”(两个字节)的前一半字节。
这样“中”字就不会显示出来。上面是指定的索引范围。
有人会说数一下范围不就知道了。
现在的问题是任意截断。要显示出来中文的效果。
(若截到中文的前一个字节,那样中文中显示不出来,就要显示整个中文来, 注意:先要用getByte())
String(byte[] bytes, String charsetName)
String ttt = "java中国";
int len = ttt.length();
System.out.println (len);
System.out.println (ttt.substring(3, len));
}结果:
6
a中国-----------------------------------lz是不是看错了?还是你的操作系统不是简体中文?
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说的现象啊?!难道我理解错误了?