1. 程式人生 > >按字符大小分割字符串

按字符大小分割字符串

isl urn size turn temp 位置 數據 spl arr

最近在做小票打印機的項目,其中需要將商品名按照固定字符長度分割展示。

解決思路:獲得應該被分割的位置數組。然後直接按照數組分割商品名填充到打印的數據中。

/**
* 得到一個字符串應該被分割的位置數組
* @param s
* @return
*/
public static int[] lengthSplitArr(@NotNull String s, int splitSize) {
if (s == null)
return new int[0];
char[] c = s.toCharArray();
int[] temp = new int[(c.length * 2 / splitSize) + 1];
int loc = 0;
int clearPoint = 0;
int splitPoint = clearPoint + splitSize;
int len = 0;
for (int i = 0; i < c.length; i++) {
len++;
if (!isLetter(c[i])) {
len++;
}
if (len >= splitPoint) {
if (len > splitPoint) {
clearPoint = splitPoint - 1;
temp[loc] = i - 1;
} else if(len == splitPoint){
clearPoint = splitPoint;
temp[loc] = i;
}
loc++;
splitPoint = clearPoint + splitSize;
}
}
int [] result = new int[loc];
System.arraycopy(temp, 0, result, 0, loc);
return result;

}

按字符大小分割字符串