当前位置: 首页 > 知识库问答 >
问题:

输入另一个字符串后计算元音和辅音

郜德容
2023-03-14

JAVA:

编写一个类,其中构造函数接受一个String对象作为其参数。该类应该有一个方法返回字符串中元音的数量,另一个方法返回字符串中辅音的数量。(空格既不计元音也不计辅音,应该忽略。)

在执行以下步骤的程序中演示该类:

  1. 要求用户输入字符串
  2. 程序显示以下菜单:

a、 计算字符串中元音的数量。

b、 数一数字符串中的辅音数

c、 数一数字符串中的元音和辅音

d、 输入另一个字符串

e、 退出程序

我已经写了代码:什么时候可以检查我的选项d,当我输入另一个字符串时,它给元音和辅音计数0。

   Scanner sc = new Scanner(System.in);
    System.out.println("Enter a String: ");
    String input1 = sc.nextLine();

    VowelsAndConsonants vc = new VowelsAndConsonants(input1.toLowerCase());

    System.out.println("\nWhat would you like to do? Enter:\n" + "'a' to count the vowels\n"
            + "'b' to count consonants\n" + "'c' to count both vowels and consonants\n"
            + "'d' to enter another String\n" + "'e' to exit the program");
    char input2 = sc.next().charAt(0);

    while (input2 != 'e') {

        if (input2 == 'a') {
            System.out.println("Vowels: " + vc.vowelsCount());
        } else if (input2 == 'b') {
            System.out.println("Consonants: " + vc.consonantCount());
        } else if (input2 == 'c') {
            System.out.println("Vowels: " + vc.vowelsCount());
            System.out.println("Consonants: " + vc.consonantCount());
        } else if (input2 == 'd') {
            System.out.println("Enter another string: ");
             input1 = sc.nextLine();
            vc = new VowelsAndConsonants(input1.toLowerCase());
        }
        System.out.println("\nWhat would you like to do? Enter:\n" + "'a' to count the vowels\n"
                + "'b' to count consonants\n" + "'c' to count both vowels and consonants\n"
                + "'d' to enter another String\n" + "'e' to exit the program");
         input2 = sc.next().charAt(0);

    }
    System.out.println("Have a great day!");

共有2个答案

华峰
2023-03-14

这是一个工作程序,将做你正在寻找:

public class Test {


    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("Enter a String: ");
        String input1 = sc.next();

        VowelsAndConsonants vc = new VowelsAndConsonants(input1.toLowerCase());




        boolean flag =true;
        while (flag) {
            System.out.println("\nWhat would you like to do? Enter:\n" + "'a' to count the vowels\n"
                    + "'b' to count consonants\n" + "'c' to count both vowels and consonants\n"
                    + "'d' to enter another String\n" + "'e' to exit the program");
            String input2 = sc.next();
            switch (input2) {
                case  "a":
                    System.out.println("Vowels: " + vc.vowelsCount());
                    break;
                case "b":
                    System.out.println("Consonants: " + vc.consonantCount());
                    break;
                case "c":
                    System.out.println("Vowels: " + vc.vowelsCount());
                    System.out.println("Consonants: " + vc.consonantCount());
                    break;
                case "d":
                    System.out.println("Enter another string: ");
                    input1 = sc.next();
                    vc = new VowelsAndConsonants(input1.toLowerCase());
                    break;
                case "e":
                    flag=false;
                    break;
                default:
                    System.out.println("wrong selection please try again");

           }
        }
        System.out.println("Have a great day!");
    }
}


class VowelsAndConsonants {
    String str;
    public VowelsAndConsonants(String str){
        this.str = str;
    }


    public int vowelsCount(){
        str = str.replaceAll("[\\W]", "");  //remove non-chars
        int strLength = str.length();
        str = str.replaceAll("[aeiou]", "");
        return strLength-str.length();
    }

    public int consonantCount(){
        str = str.replaceAll("[\\W]", "");  //remove non-chars
        int strLength = str.length();
        str = str.replaceAll("[aeiou]", "");
        return str.length();
    }

}

我希望这能有所帮助。

欧阳子石
2023-03-14

当您混合ScannerNext()nextLine()方法时,这是一个众所周知的问题。当您调用Next()时,它会返回下一个单词,直到换行符,但将换行符留在缓冲区中。剩余输入的第一行现在是空行。

然后,当您调用nextLine()时,它返回该换行符之前的所有字符;换句话说,它返回零个字符,一个空字符串

如果您在调用next()、nextInt()nextDouble()等之后,小心地使用额外的换行符来调用nextLine(),那么您可以毫无问题地混合调用,但在这种情况下,最简单的方法是始终使用nextLine()来处理用户的任何输入。

 类似资料:
  • 我正在研究一个程序,可以计算字符串中元音的数量。我有它的工作,但如果Y后面跟着一个辅音,我就无法计算Y。我的VOWEL_GROUP是“AEIOUAEOU”,它返回普通元音的数量,但不返回“y”。我让它看看charAt(I),看看它是否被元音组中的字符以外的其他字符所取代。谢谢你的帮助。以下是显示错误的输入和输出

  • 如果用户输入字符串: 它应该输出 我知道这是一个相当简单的代码,但我有太多的想法和困惑。我需要一个来确保我有两个方法来处理numberofvoxels和capitalizeWord,并且都返回一个结果 我得到一个错误,我仍然试图找出大写后,我得到了计数元音的工作

  • 问题内容: 我在做作业时遇到了这个问题(老实说,至少没有试图隐藏它),在解决该问题时遇到了问题。 给定以下声明:字符串短语=“ WazzUp?-谁在第一时间???-IDUNNO”;编写必要的代码以计算字符串中的元音数量,并将适当的消息打印到屏幕上。 这是我到目前为止的代码: 但是,当我运行它时,它只会产生一堆空白行。有人可以帮忙吗? 问题答案: 应该是。 给出的值,然后加1。就像您现在拥有的一样,

  • 我正在编写一个程序,计算用户输入的句子中元音和辅音的数量。我下面的代码计算元音的数量,但它为辅音计数提供了奇怪的数字。例如,如果我输入“g”,我得到的辅音计数是10。

  • 首先,请原谅我英语不好。这不是我的母语(这是我的问题之一,稍后你会看到原因)。 我正在Java中制作一个方法,建议计算字符串的元音。输入来自windows提示符,因为我分别使用javac和java命令编译和执行。 我已经写了一些代码来解决这个问题,但我无法计算带有重音符号的元音。例如。当我尝试“canción”时,它的输出只计算 2 个元音。 我正在使用扫描仪作为输入法。 我尝试比较两个字符串,因

  • 输入20个字符串的数组。制作一个程序,打印出辅音多于元音的字符串,其中字母“r”至少重复3次。 我相信问题出在我的 if 循环中,但不知何故我不明白为什么它不能正常工作。它会打印我输入的每个字符串。 这是我写的代码: