1

我想拆分一个看起来像这样的字符串:

Johannesburg General Hospital011 488 4911

但是有些字符串之间有一个空格,如下所示:

Johannesburg General Hospital 011 488 4911

我希望它是这样的 2 个不同的数组:

约翰内斯堡总医院

011 488 4911

如果没有空间如何拆分?

4

2 回答 2

1

您可以为此构建一个正则表达式,但for循环也一样好:

/**
* @return the rest of the input text from the first digit
*/
public String findPhone(String text) {
    for (int i = 0; i < text.length(); ++i) {
        if (Character.isDigit(text.charAt(i))) {
            return text.substring(i);
        }
    }
    return "";
}

你可以这样称呼它:

String number = findPhone("Johannesburg General Hospital011 488 4911")
// number is 011 488 4911 here
String sanitizedNumber = number.replace(" ", ""); // number without spaces
于 2013-08-16T09:44:41.690 回答
0

您可以使用带有正则表达式的组,这可能是您的表达式。

 Pattern p = Pattern.compile("([^\\d]*) ([\\d ]*)");
       //  get a matcher object
       Matcher m = p.matcher("Johannesburg General Hospital 011 488 4911 Johannesburg General Hospital 011 488 4911");
       int count = 0;
       while(m.find()) {
           count++;
           System.out.println(m.group(1));
           System.out.println(m.group(2));
      }
   }

谢谢

于 2013-08-16T08:33:34.553 回答