次のような文字列を分割したい:
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));
}
}
ありがとう