日期:2014-05-20  浏览次数:20682 次

String 类的getBytes()方法问题
比如 "java中国“
getByte之前     最大索引为5,若截取索引号为3到5.截取的是
                          "java中 "
getByte之后,最大索引变为8,若截取索引号为3到5,就会
            截取 "a+“中”(两个字节)的前一半字节。
这样“中”字就不会显示出来。

上面是指定的索引范围。
有人会说数一下范围不就知道了。
现在的问题是任意截断。要显示出来中文的效果。
(若截到中文的前一个字节,那样中文中显示不出来,就要显示整个中文来,   注意:先要用getByte())

------解决方案--------------------
BreakIterator breakIterator = BreakIterator.getCharacterInstance(Locale.CHINESE);
String str = "java中国 ";
breakIterator.setText(str);
int index = 0;
while((index =breakIterator.next()) != BreakIterator.DONE){
System.out.println(str.substring(0, index));
}
------解决方案--------------------
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是不是看错了?还是你的操作系统不是简体中文?