JAVA处理中英混合的字符串的问题,郁闷。
JAVA处理字符串时,一个汉字算一个字符,这时处理中英文混合的字符串时就遇到了麻烦。
现在要从服务器接收字符串,是中英文都有的,收到后,往里面相应的地方插入分隔符,然后再发给其他客户端,具体是这样的,收到的字符串格式为
书名 作者 出版社 000000金额
|-------20字节-----|--10字节-|---------30字节--------------|--10字节-|
现在收到该字符串后,要在书名、作者、出版社我金额后插入一个分隔符 "| ",如果中文按两个字节算的话,那么我只要数前20个字节那就是书名,插入一个分隔符,再数10个字节,就是作者,插入一个分隔符....
但现在Java一个汉字算一个字符,那么我用insert插入就会出问题。
假如字符串是这样的
Delphi5实务经典 林金霖 中国铁道出版社 0000007800
Java自学教程 叶至军 人民邮电出版社 0000004800
如果我用Str.insert(20, "| ")插入,那就不会得到
Delphi5实务经典 |林金霖 |中国铁道出版社 |0000007800
Java自学教程 |叶至军 |人民邮电出版社 |0000004800
的格式。
我实在是没有一点办法了。
------解决方案--------------------String str = "中国人料理中国人 中国人料 中国人料理中国人料理中国人料理 中国人料理 ";
byte[] bt = str.getBytes();
String strName = new String(bt,0,20) + "| "
+ new String(bt,20,10) + "| "
+ new String(bt,30,30) + "| "
+ new String(bt,60,10) + "| ";
System.out.println(strName);