Количество цифр в String

Рейтинг: 1Ответов: 3Опубликовано: 14.12.2014

Как узнать?

Пример:

String s = "asdasljdi2";

В стринге есть одна цифра, это цифра 2.

Как грамотно это узнать без конченных частых проверок на if(s.contains("1") || s.contains("2")) и т.д.?

Спасибо.

Ответы

▲ 4Принят

Если вы используете JDK 8, то есть менее понятный, но более короткий код

public class CharCount {
    public static void main(String[] args) {
        String text = "this 1 text contains 2 digits";
        long count = text.codePoints().filter(Character::isDigit)
            .count();
        System.out.println(count);
    }
}
▲ 4

Компилятора под рукой нет, но

int count = 0;
for (int i = 0; i < s.length(); i++) {
    if (Character.isDigit(s.charAt(i))) {
        count++;
    }
}

наверняка есть более красивые итерационные решения, но я в яве пока еще новичок

▲ 3

Скорее всего это самый ресурсозатратный и медленный способ, но занимает все одну строку.

int count = входная_строка.replace("[^0-9]", "").length();