public static int countDigits(String string) {
int count = 0;
String[] array = string.split("");
for (int i = 0; i < array.length; i++) {
if (Character.isDigit(array[i])) { // !!!
count++;
}
}
return count;
}
Laziz Karimov
2 уровень
Хочу решить задачу через массив строк, но компилятор не видит символ в методе isDigit(). Что делать ?
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia VolkovaJava Developer в DXCMaster
14 октября 2021, 15:55
Потому что ты ему передаешь не символ, а строку - это другой тип данных.
0
Laziz KarimovBackend Developer в СберБанк
14 октября 2021, 17:03
for (int i = 0; i < array.length; i++) {
char a = array[i].charAt(i);
if (Character.isDigit(a)) {
count++;
}
} а тут что не так ?
0
Ksenia VolkovaJava Developer в DXCMaster
14 октября 2021, 17:56
Уверен, что в строке array[i] будет символ с индексом i ?
0
Laziz KarimovBackend Developer в СберБанк
14 октября 2021, 18:03
Нет, не уверен. Откровенно говоря запутался, скажите какой правильный индекс нужно подобрать?
0
Ksenia VolkovaJava Developer в DXCMaster
14 октября 2021, 19:17решение
Если делать через split, то array[i].charAt(0) - ведь строка array[i] всегда будет состоять из одного символа.
Но лучше не создавать лишнего массива, а просто пробежаться по строке string с помощью charAt(i)
+2