此篇尝试将字符串按固定长度分割返回List
private void run11() throws Exception {
//测试开始
ArrayList b=splitByBytes("abcdefghijk",3);
//结果
//[abc, def, ghi, jk]
}
//功能:按固定长度来分割字符串 chenst
public ArrayList<String> splitByBytes(String text, int length)
throws UnsupportedEncodingException {
String encode="GBK";
if (text == null) {
return null;
}
ArrayList<String> list=new ArrayList<String>();
StringBuilder sb = new StringBuilder();
int currentLength = 0;
for (int i=0;i<text.toCharArray().length;i++)
{
char c=text.charAt(i);
currentLength += String.valueOf(c).getBytes(encode).length;
if ( currentLength <= length) {
sb.append(c);
} else {
currentLength=0;
currentLength += String.valueOf(c).getBytes(encode).length;
list.add(sb.toString());
sb.replace(0,sb.length(),"");
sb.append(c);
}
if(i==text.toCharArray().length-1)
list.add(sb.toString());
}
return list;
}
实现要点回顾:
在遍历text.toCharArray()中解决:
1.新字符串存放
2.容量处理
可能用到的场景:
暂时想不到,这个函数有啥用?