Пост в чисто исследовательских целях.
Почему компилятор не принимает, ведь решение на первый, второй, третий и так далее взгляды правильное. Экспериментировал в IDEA с разными строками, вроде, работает правильно. То, что нужно считает, то чего не нужно - наоборот.
Может, быть, компилятор хочет, чтобы использовал именно Character.isLetter(char)? Тогда почему первое и последнее условие проходит. Непонятно мне все это. Может, кто свежим взглядом посмотрит?
package com.javarush.task.pro.task12.task1206;
/*
Анализ строк
*/
public class Solution {
public static void main(String[] args) {
String string = "Думаю, это будет новой фичей." +
"Только не говорите никому, что она возникла случайно.";
System.out.println("Количество цифр в строке : " + countDigits(string));
System.out.println("Количество букв в строке : " + countLetters(string));
System.out.println("Количество пробелов в строке : " + countSpaces(string));
}
public static int countDigits (String string) {
//напишите тут ваш код
int digitCount = 0;
char[] temp = string.toCharArray();
for (int i = 0; i < string.length(); i++) {
temp[i] = string.charAt(i);
String tempString = "" + temp[i];
if (tempString.equals("1"))
digitCount++;
else if (tempString.equals("2"))
digitCount++;
else if (tempString.equals("3"))
digitCount++;
else if (tempString.equals("4"))
digitCount++;
else if (tempString.equals("5"))
digitCount++;
else if (tempString.equals("6"))
digitCount++;
else if (tempString.equals("7"))
digitCount++;
else if (tempString.equals("8"))
digitCount++;
else if (tempString.equals("9"))
digitCount++;
else if (tempString.equals("0"))
digitCount++;
}
return digitCount;
}
public static int countLetters (String string){
//напишите тут ваш код
int letterCount = 0;
char[] temp = string.toCharArray();
for (int i = 0; i < string.length(); i++) {
temp[i] = string.charAt(i);
String tempString = "" + temp[i];
if (!tempString.equals("1")&&!tempString.equals("2")&&!tempString.equals("3")&&!tempString.equals("4")
&&!tempString.equals("5")&&!tempString.equals("6")&&!tempString.equals("7")&&!tempString.equals("8")
&&!tempString.equals("9")&&!tempString.equals("0")&&!tempString.equals(",")&&!tempString.equals(".")
&&!tempString.equals(" "))
letterCount++;
}
return letterCount;
}
public static int countSpaces (String string){
//напишите тут ваш код
int spaceCount = 0;
char[] temp = string.toCharArray();
for (int i = 0; i < string.length(); i++) {
temp[i] = string.charAt(i);
String tempString = "" + temp[i];
if (tempString.equals(" "))
spaceCount++;
}
return spaceCount;
}
}