/**
*
* @param source 需要处理的字符串
* @return
*/
public static List
{
List
char[] carr = source.toCharArray();
int lastLetter = 0;//记录上一个字符是字母还是数字,1是字母,2是数字
StringBuilder sb = new StringBuilder();
for(Character c : carr)
{
if(lastLetter == 0)
{
sb.append(c);
lastLetter = Character.isDigit(c)?2:1;
continue;
}
if(Character.isDigit(c))
{
if(lastLetter==2)
{
sb.append(c);
}
else
{
result.add(sb.toString());
sb = new StringBuilder();
sb.append(c);
}
lastLetter = 2;
}
else
{
if(lastLetter==1)
{
sb.append(c);
}
else
{
result.add(sb.toString());
sb = new StringBuilder();
sb.append(c);
}
lastLetter = 1;
}
}
return result;
}
最后返回的List就是装的分隔后的字符串
上面正则的逻辑并不是你说的分开,而是寻找汉字开头后面跟数字的子字符串。