如何使用许多不同的字符标记字符串?

时间:2013-08-16 07:51:37

标签: android stringtokenizer

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

Johannesburg General Hospital011 488 4911

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

Johannesburg General Hospital 011 488 4911

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

约翰内斯堡总医院

011 488 4911

如果没有空格,我该如何拆分?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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));
      }
   }

由于