public static String removeNonDigits(final String str) {
if (str == null || str.length() == 0) {
return "";
}
return str.replaceAll("/[^0-9]/g", "");
}
Powinno się tylko uzyskać cyfry i wrócić, ale nie robić tego zgodnie z oczekiwaniami! Jakieś sugestie?Zastąp wszystkie znaki niebędące cyframi pustą literą w łańcuchu znaków
Jeśli spojrzysz na metodę String.replaceAll, zobaczysz, że robi to Pattern.compile (regex) .matcher (this) .replaceAll (zamiennik), który jest nieefektywny, jeśli robisz to bardzo często. Lepszym sposobem byłoby wyodrębnienie skompilowanego wzorca w stałą. – kfox