Java количество минусов в строке, не работает - PullRequest
1 голос
/ 14 марта 2019

Я пытаюсь просто найти количество согласных в строке.Ниже приведен код, который у меня есть для метода, но он продолжает возвращать 0 при запуске.Я использую!неправильно?Нужно ли делать это для каждого отдельного случая?то есть:! (ch == ('a')) ||! (ch == ('o'))

public int numCons() {
    int i = 0;
    int length = quote.length();
    int con = 0;
    String string;

    for (i = 0; i < length; i++) {
        //string = quote.substring(i);
        char ch = quote.charAt(i);

        if (!(ch == ('a') || ch == ('e') || ch == ('i') 
                || ch == ('o') || ch == ('u') || ch == ('y') || ch == ('A') 
                || ch == ('E') || ch == ('I') || ch == ('O') || ch == ('U') || ch == ('Y'))) 
            if (Character.isLetter(i)) 
                con++;
        }
    return con;
}

Ответы [ 2 ]

5 голосов
/ 14 марта 2019

i - это индекс, который вы перебираете, а не символ. Вы, наверное, имели в виду проверку

if (Character.isLetter(ch)) 
1 голос
/ 14 марта 2019

кстати, если вы используете Java 8+, вы можете сделать это в одну строку с помощью Stream API:

quote.chars().filter(c -> !"aeiou".contains(String.valueOf((char) c).toLowerCase())).count();

(возможно, есть еще более элегантный способ, это был простопервое что я написал)

...