Alpha和数字分割Java字符串

时间:2018-01-25 18:47:03

标签: java string split

我有一组变量,我想根据字符串中的字母字符和数字字符拆分它们。

String strPolNuber= AFR123456;

因此,我的所有字符串在开始时都会有3-4个字母字符,最后会有6到7个字符。

我想分离alpha和数字,并通过在它们之间添加#来连接它们。

String strUpdatedString=AFR#123456;

有人可以帮忙吗?

4 个答案:

答案 0 :(得分:11)

所以你想把#放在的地方,前面有字母字符,后面有数字。你可以在正则表达式look-around mechanisms的帮助下完成。

实现它的代码可以看起来像

str = str.replaceAll("(?<=[a-zA-Z])(?=\\d)","#");
  • (?<=[a-zA-Z])确保在匹配的地方之前有字母字符,但不会在匹配中包含该字符
  • (?=\\d)确保匹配后的位置有数字,匹配中也不会包含数字,因此不会被删除

答案 1 :(得分:2)

正则表达式取代怎么样: strPolNuber.replaceAll("([a-zA-Z]+)", "$1#")

如果字符串遵循如此严格的结构,这应该有效。它是如何工作的?您可以按相同的顺序替换每个字符序列,然后按&#34;#&#34;。

答案 2 :(得分:0)

算法解决方案就是这样的,

MERGE

答案 3 :(得分:0)

另一种算法,

static String split(String s) {
    for (int i = 0; i < s.length() - 1; i++) {
        if (!Character.isLetter(s.charAt(i)))
            return s.substring(0, i) + "#" + s.substring(i, s.length());
    }
    // String doesn't contain numeric part
    return s;
}