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

如何检查Java中一个句子中有多少辅音和元音?

吕永嘉
2023-03-14

在循环结束时,我计划显示句子中辅音和元音的数量。我想知道是否有更有效的方法来检查给定句子中有多少辅音和元音,而不是使用if语句手动输入每个字母。(key指的是我已经初始化的扫描仪)

编辑:它需要忽略数字和其他特殊字符,例如,如果我写你好@你好吗?。应该有8个元音和6个辅音。

System.out.println("Please enter the sentence to analyze: ");

String words = key.nextLine(); //the sentence the user inputs
int c = 0; //# of consonants
int v = 0; //# of vowels
int length = words.length(); //length of sentence
int check; //goes over each letter in our sentence

for(check = 0; check < length; check++){
char a = words.charAt(check);   

        if(a == 'a' || a == 'A' || a == 'e' || a == 'E' || a == 'i' || a == 'I' || a == 'o'
            || a == 'O' || a == 'u' || a == 'U' || a == 'y' || a == 'Y')
            v = v + 1;
        else if(a == 'b' || a == 'B' || a == 'c' || a == 'C' || a == 'd' || a == 'D' || a == 'f'
            || a == 'F' || a == 'g' || a == 'G' || a == 'h' || a == 'H' || a == 'j' || a == 'J' 
            || a == 'k' || a == 'K' || a == 'l' || a == 'L' || a == 'm' || a == 'M' || a == 'n' 
            || a == 'N' || a == 'p' || a == 'P' || a == 'q' || a == 'Q' || a == 'r' || a == 'r'
            || a == 's' || a == 'S' || a == 't' || a == 'T' || a == 'v' || a == 'V' || a == 'w'
            || a == 'W' || a == 'x' || a == 'X' || a == 'z' || a == 'Z')
                c = c + 1;
}

共有3个答案

谭浩皛
2023-03-14

我相信这可以改进,但无论如何我都会把它扔在戒指里。从句子中删除非字符,小写,然后转换为字符数组,并将其与全小写元音的字符数组进行比较。

String myText="这是一个句子。";

    int v = 0;

    char[] vowels = {'a','e','i','o','u'};
    char[] sentence = myText.replaceAll("[^a-zA-Z]","").toLowerCase().toCharArray();

    for (char letter : sentence) {
        for (char vowel : vowels) {
            if (letter == vowel) {
                v++;
            }
        }
    }
    System.out.println("Vowels:"+ v);
    System.out.println("Consonants:" + (sentence.length -v));
冯枫
2023-03-14

像这样的怎么样

String vowels = "aeiouyAEIOUY"; // you can declare it somewhere before loop to 
                                // to avoid redeclaring it each time in loop

//inside loop
if ((a>='a' && a<='z') || (a>='A' && a<='Z')){ //is letter
    if (vowels.indexOf(a)!=-1)                 //is vowel
        v++;
    else                                       //is consonant
        c++;
}
顾嘉良
2023-03-14

使用Character.is字母(ch)来确定字符是元音还是辅音,然后检查有问题的字符是否在元音集中。

创建元音集的一种方法:

    Set<Character> vowels = new HashSet<Character>();
    for (char ch : "aeiou".toCharArray()) {
        vowels.add(ch);
    }

并增加v或c:

    if (Character.isLetter(a)) {
        if (vowels.contains(Character.toLowerCase(a))) {
            v++;
        } else {
            c++;
        }
    }
 类似资料:
  • 本文向大家介绍如何在Python中检测元音与辅音?,包括了如何在Python中检测元音与辅音?的使用技巧和注意事项,需要的朋友参考一下 首先,您应该检查字符是否为字母。然后,您可以创建一个元音列表,并使用该列表检查字符是否为元音。如果没有,那一定是辅音。例如, 这将给出输出:

  • 样本输出字符串:检测到汉娜输出元音的最后一部分:检测到辅音:h n n h

  • 问题内容: 您如何检查Java字符串中有多少个字母? 您如何检查字符串中某个位置的哪个字母(即字符串的第二个字母)? 问题答案: 一个) http://download.oracle.com/javase/7/docs/api/java/lang/String.html#length%28%29 编辑 如果您要计算中的特定类型字符的数量,则一种简单的方法是根据您的测试用例来检查每个索引。 其中可以

  • 问题内容: 我在这里犯了什么愚蠢的错误,使我无法确定用户输入的第一个字母是辅音?不管我输入什么,它都可以确定第一个字母是元音。 问题答案: 更改: 至: 总是因为它被评估为 ,因为非空字符串始终为True,因此将其评估为True。

  • 我一直在环顾该网站,但找不到问题的答案。我需要能够浏览给定数量的字符串并计算单词中的元音数量。如果元音的数量与之前输入的数字匹配,则打印 YES。我尝试使用字符串数组,然后遍历数组中的每个单词以查找元音,为找到的每个元音增加元音检查(vocheck),然后检查vocheck是否等于适当的数字。但是,当我检查 vocheck for 循环是否有效时,它只是将 vocheck 保持为 0。怎么了? 这

  • 问题内容: 我正在尝试检索仅在到达日期和机场匹配时才返回飞行数据的数据。我似乎无法找出最佳解决方案。我只能在机场或到达日期相同的地方提取数据,而不能在两者都提取(只能使用一次)。这是我当前的Java代码如下所示: 这是数据本身: 当前的Java代码将返回 仅 具有相同机场的所有子级。如您所料,当客户端需要排序的数据量比上述测试数据大得多时,这是不可行的。如何更好地在Firebase端过滤数据? 问