public class Demo {
public static void main(String[] args) {
for (int i = 0; i < 15; i++) {
System.out.print("截到第" + i + "位: ");
splitStr("我ZWR爱JAVA", i);
}
}
public static void splitStr(String str, int bytes) {
int end = 0;
for (int i = 0, len = str.length(); i < len; i++) {
if (isChineseChar(str.charAt(i))) {
bytes--;
}
bytes--;
if (bytes >= 0) {
end = i + 1;
} else {
break;
}
}
System.out.println(str.substring(0, end));
}
private static boolean isChineseChar(char c) {
return String.valueOf(c).getBytes().length > 1;
}
// 截到第0位:
// 截到第1位:
// 截到第2位: 我
// 截到第3位: 我Z
// 截到第4位: 我ZW
// 截到第5位: 我ZWR
// 截到第6位: 我ZWR
// 截到第7位: 我ZWR爱
// 截到第8位: 我ZWR爱J
// 截到第9位: 我ZWR爱JA
// 截到第10位: 我ZWR爱JAV
// 截到第11位: 我ZWR爱JAVA
// 截到第12位: 我ZWR爱JAVA
// 截到第13位: 我ZWR爱JAVA
// 截到第14位: 我ZWR爱JAVA
}