pattern 字符串中的数字汉字分开,下面详细介绍。 JAVA

2025-05-14 03:36:28
推荐回答(2个)
回答1:

/**
*
* @param source 需要处理的字符串
* @return
*/
public static List splitLetterAndNumber(String source)
{
List result = new ArrayList();
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就是装的分隔后的字符串

回答2:

上面正则的逻辑并不是你说的分开,而是寻找汉字开头后面跟数字的子字符串。