Программа почему-то выдает ошибки
Условие задачи: Написать статический метод int countCapitals(String s), который возвращает, сколько слов в строке s начинаются с заглавной буквы.
Заглавной буквой считается символ (Character) типа UPPERCASE_LETTER или типа TITLECASE_LETTER. Словом считается последовательность букв или цифр, разделённых одним или несколькими пробельными символами (whitespace), знаками (symbol) или знаками пунктуации (punctuation).
import java.util.Scanner;
public class P33 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
System.out.println(countCapitals(s));
}
static int countCapitals(String s) {
int count = 0;
for (int i = 0; i < s.length(); i++) {
if ((Character.isUpperCase(s.charAt(i)) || Character.isTitleCase(s.charAt(i))) && (i == 0 || Character.isWhitespace(s.charAt(i - 1)) || checkSymbol(s.charAt(i - 1)))) {
count++;
}
}
return count;
}
private static boolean checkSymbol(char c) {
char[] symbols = {'.', ',', '-', ':', ';', '?', '!'};
for(int i = 0; i < symbols.length; i++){
if(symbols[i] == c){
return true;
}
}
return false;
}
}
