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

java 截取一个包含汉字的字符串的前n个字节的算法

2010-01-03 13:30 507 查看
看到论坛有人在问一到面试题,问的是截取一个包含汉字的字符串的前n个字节,且不能截取到汉字的半个字节,我想了下,写了的demo,目前测试是通过了的,呵呵!

如有bug,请各位朋友提出来,呵呵!共同学习,共同进步!恶哈哈!

/**
*
* @author lazy_p
* @version 2010-1-3
*/
public class StringSpiltByByte {

@SuppressWarnings("unused")
private String subString(String str, int len) {

byte[] b = str.getBytes();

if (len == 1) {// 当只取1位时
if (b[0] < 0)
return new String(b, 0, 2);
else
return new String(b, 0, len);
} else {

if (b[len - 1] < 0 && b[len - 2] > 0) { // 判断最后一个字节是否为一个汉字的第一个字节

return new String(b, 0, len - 1);
}
}
return new String(b, 0, len);
}

public static void main(String[] args) {
String str = "我ABC汉DEF";
System.out.println(new StringSpiltByByte().subString(str, 1));

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