您的位置:首页 > 编程语言 > Java开发

Java实现按字节长度截取字符串

2010-12-10 00:33 706 查看
Java实现按字节长度截取字符串
当给一个包含英文和汉字的字符串时,如:
String str="china中国china";
有时候需要按字节长度截取字符串,当要截取6个字节时,不能只截取“china”和“中”的一半,这时候就需要做处理。

方法:使用String的matches("[/u4e00-/u9fa5]")判断每个字符是不是汉字。
下面代码的实现方式不是很好。。

public class SplitString {
public static void main(String[] args) throws Exception {
String str = "c中国chin受到腐蚀的 sfssfssdf ese";
//      System.out.println(SplitString.bSubstring(str, 1));
SplitString.Split(str,3);
}

public static String Split(String str,int length){
StringBuilder sb = new StringBuilder();
//这里将要截取的字节的长度转化为字符串要截取的长度
for (int i = 0; i < length; i++) {
//判断每个字符是不是汉字
if (str.substring(i, i + 1).matches("[/u4e00-/u9fa5]")) {
//是汉字,则占两个字节要截取的length-1
//例如:当要截取4个字节的"c中国china" 则需要截取3个字符的长度的"c中国china"--结果为:"c中国"
length--;
sb.append(str.subSequence(i, i + 1));
} else {
sb.append(str.subSequence(i, i + 1));
}
}
System.out.println(sb.toString());
return sb.toString();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: