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 }