Sean Rocero Ответов: 2

Привет, что я должен добавить в этот код, чтобы он также показывал, сколько согласных, когда пользователь вводит строку.


import java.util.Scanner;

public class NewClass {
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        System.out.print("Input the string: ");
        String str = in.nextLine();
        System.out.print("Number of Vowels in the string: "
        + count_Vowels(str)+"\n");
    }
    public static int count_Vowels(String str) 
    {
        int count = 0; for (int i = 0; i < str.length(); i++)
        {
            if (str.charAt(i) == 'a' || str.charAt(i) == 'e' ||
            str.charAt(i) == 'i' || str.charAt(i) == 'o' || str.charAt(i)
            == 'u')
            {
                count++;
            }
        }
        return count;
    }
}


Что я уже пробовал:

я пробовал использовать "если еще", но он не работает. я очень ценю, если кто-нибудь может помочь.

2 Ответов

Рейтинг:
2

CPallini

Подсказка 1: 'A','E','I','O','U' есть и гласные, но ваш код не в состоянии их обнаружить.
Подсказка 2: Если символ-это буква (см. Ява.яз.Метод Character. isLetter ()[^]) затем, если это не гласная, то должна быть согласная.


Рейтинг:
0

OriginalGriff

Создайте новую функцию с именем count_Consonants и измените тест, чтобы можно было считать только согласные.

Но этот дизайн плох: во-первых, он не работает должным образом: "все кошки-кошки" должно возвращать 7, но это вернет 6, потому что он не работает с заглавными буквами.
Во-вторых, потому что использование той же логики для согласных означает ужасно длинный if состояние.
Вместо этого создайте два массива символов: один содержит "aeiou", а другой-все остальные строчные буквы.

Теперь напишите функцию под названием count_Matches это принимает массив символов и строку для проверки и возвращает количество "совпадений". Позвоните ему дважды: один раз из count_Vowels и однажды от count_Consonants
Напишите еще одну функцию под названием isAMatch который принимает массив символов и символ.
Внутри isAMatch функция, преобразующая символ в нижний регистр и циклически просматривающая массив в поисках его. Если вы найдете его, верните true. если вы доберетесь до конца массива, не найдя его, верните false.
Внутри count_Matches функция, цикл через каждый символ в строке так же, как вы находитесь в данный момент, но используйте isAMatch функция проверки каждого символа и его подсчета.

Это довольно просто сделать, и это позволяет вам проверять наличие цифр или специальных символов (пунктуация и т. д.) с минимальными изменениями в будущем.

Но... это твое домашнее задание, так что я не дам тебе никакого кода!