Как узнать процент гласных в строке? - PullRequest
0 голосов
/ 21 ноября 2018
package scanner;
import java.util.Scanner;

public class GuessSentence {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("Type a sentence");
        String sentence = sc.nextLine();
        System.out.println("You entered the sentence " + sentence);
        System.out.println("The number of words in the sentence is " + sentence.length());

        char [] chars=sentence.toCharArray();

        int count = 0;
        for (char c : chars) {
            switch(c) {
            case 'a':
            case 'e':
            case 'i':
            case 'o':
            case 'u':
                count++;
                break;
            }
        }
        System.out.println("The numner of vowels in your sentence is " + count);
        System.out.println("The percentage of vowels is " + 100 * count /sentence.length() + "%" );
    }
}

Спасибо всем, кто помог, я смог получить правильный результат, который искал, поэтому я ценю всю полученную помощь.

Ответы [ 3 ]

0 голосов
/ 21 ноября 2018

Вы хотите (100.0 * count / sentence.length()).Вы используете оператор %, который является модулем двух чисел

0 голосов
/ 21 ноября 2018

Вы не используете правильный оператор.модуль (%) дает вам остаток после деления.Вам нужно использовать операцию деления (/).Вы можете использовать double / float для получения точного значения.

0 голосов
/ 21 ноября 2018

Когда вы вычисляете процент, который вы делаете:

sentence.length() % count

Но % является оператором по модулю, который вычисляет остаток.Вы хотели разделить:

sentence.length() / count

Однако это все равно не даст вам правильных результатов, так как шкала неверна, и вы делите неправильно.Должно быть:

100 *count / sentence.length()

Или

100.0 *count / sentence.length() 

Если вы хотите избежать усечения

Вывод:

You entered the sentence Hello World
The number of words in the sentence is 11
The numner of vowels in your sentence is 3
The percentage of vowels is 27%
...