62,620
社区成员
发帖
与我相关
我的任务
分享
public static void main(String[] args) throws Exception {
System.out.println(subString("中ABC大EFG", 1));
}
static String subString(String src, int length) throws Exception {
byte[] b = src.getBytes("gbk");
boolean isChinese = false;
if (length <= b.length) {
if (b[length-1] < 0) {//当所截取长度的最后一个字节是汉子时才需要进行汉子解析否则的话就是正常的截取就行了
for (int i = 0; i < length; i++) {
if (b[i] < 0 && !isChinese) {// 如果是汉子往后多吞一个字节
i++;
length++;
} else {
isChinese = true;
}
}
}
}
return new String(b, 0, length, "gbk");
}