我想拆分一个看起来像这样的字符串:
Johannesburg General Hospital011 488 4911
但是有些字符串之间有一个空格,如下所示:
Johannesburg General Hospital 011 488 4911
我希望它是这样的 2 个不同的数组:
约翰内斯堡总医院
和
011 488 4911
如果没有空间如何拆分?
我想拆分一个看起来像这样的字符串:
Johannesburg General Hospital011 488 4911
但是有些字符串之间有一个空格,如下所示:
Johannesburg General Hospital 011 488 4911
我希望它是这样的 2 个不同的数组:
约翰内斯堡总医院
和
011 488 4911
如果没有空间如何拆分?
您可以为此构建一个正则表达式,但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
您可以使用带有正则表达式的组,这可能是您的表达式。
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));
}
}
谢谢