Замените все не цифры с пустым символом в строке

Многопоточность, утечки памяти, что-либо требующее обширных насмешек, взаимодействующих через интерфейс со сторонним программным обеспечением.

16
задан laalto 28 September 2009 в 10:20
поделиться

4 ответа

Java - это не Perl :) Попробуйте "[^ 0-9] +"

38
ответ дан 30 November 2019 в 15:17
поделиться

Попробуйте следующее:

public static String removeNonDigits(final String str) {
   if (str == null || str.length() == 0) {
       return "";
   }
   return str.replaceAll("\\D+", "");
}
17
ответ дан 30 November 2019 в 15:17
поделиться
public String replaceNonDigits(final String string) {
    if (string == null || string.length() == 0) {
        return "";
    }
    return string.replaceAll("[^0-9]+", "");
}

Это делает то, что вы хотите.

2
ответ дан 30 November 2019 в 15:17
поделиться

Я бы порекомендовал в этом конкретном случае просто создать небольшой цикл над строкой.

StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
    char ch = s.charAt(i);
    if (ch =='0' || ch == '1' || ch == '2' ...) {
        sb.add(ch);
    }
}
return sb.toString();
1
ответ дан 30 November 2019 в 15:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: