public class DivideStringByByte { public String[] divide(String originString, int size, Charset charset){ int splitSize = (int) Math.ceil(originString.getBytes(charset).length/ (double) size); String[] newStringSeq = new String[splitSize]; int startIndex = 0; int endIndex = 0; for (int i = 0; i<splitSize; i++){ while(endIndex < originString.length() && originString.substring(startIndex, endIndex).getBytes(charset).length < (double) size){ endIndex++; } newStringSeq[i] = originString.substring(startIndex, endIndex); startIndex = endIndex; } return newStringSeq; } }
使用方法
DivideStringByByte divideStringByByte = new DivideStringByByte(); String[] newStringSeq = divideStringByByte.divide(string, 17, StandardCharsets.UTF_8); for (String s : newStringSeq) { System.out.println(s); }