找到句子中所有元音的出现

时间:2014-11-23 06:55:46

标签: java

我正在编写代码,在我写的一个句子中找到所有元音'a' 'i' 'u' 'e' 'o'并计算它们。

代码将忽略元音(大写或小写)的情况。由于我不知道如何使元音计数不区分大小写,我只是将所有文本转换为小写并计算元音。我想知道是否还有其他方法可以将所有大写字母文本转换为小写并计算元音。谢谢大家的意见,我真的很感激。这是我的代码。

import java.util.Scanner;

public class VowelCount
{
    public static void main(String[] args)
    {
        //create scanner object
        Scanner input = new Scanner (System.in);
        //create vowel array
        char[] vowel = new char[]{'a', 'e', 'i', 'o', 'u'};
        int[] countVowel = new int[5];
        String yourSentence;
        //print message
        System.out.print("Enter your word here:");
        //set word entered as next input
        yourSentence = input.nextLine();
        String actualSentence = yourSentence.toLowerCase();

        for (int j = 0; j < actualSentence.length(); j++) 
        {
            char c =actualSentence.charAt(j);
            if(c=='a')
                countVowel[0]++;
            else if(c=='e')
                countVowel[1]++;
            else if(c=='i')
                countVowel[2]++;
            else if(c=='o')
                countVowel[3]++;
            else if(c=='u')
                countVowel[4]++;
        }
        for (int i = 0; i <countVowel.length; i++) 
        {
            System.out.println("Count of vowel " + vowel[i] + "=" + countVowel[i]);
        }

    }
}

2 个答案:

答案 0 :(得分:2)

您将输入yourSentence更改为大写

String newResult = changeCase.toUpperCase();

然后询问最后一句是否包含您想要的任何字符。

这完全不是你想要做的。

我会给你一个示例解决方案,但你可以做更多的事情。

String newResult = changeCase.toUpperCase();

if(newResult.contains("A") ||newResult.contains("E") || newResult.contains("O") || newResult.contains("I") || newResult.contains("U"))
   // Your code

现在,如果要计算它,可以使用indexOf并删除出现次数:

while(newResult.indexOf("U") > -1)){
  counter++
  newResult.replaceFirst("U", "!");

}

答案 1 :(得分:0)

你可能最好使用switch语句,因为它非常易读并且可以很容易地被编译器优化

yourSentence = input.nextLine();
// String actualSentence = yourSentence.toLowerCase();

for (int j = 0; j < yourSentence.length(); j++) 
{
    switch( yourSentence.charAt( j ) ) {
        case 'a':
        case 'A':
            ++countVowel[0];
            break;
        case 'e':
        case 'E':
            ++countVowel[1];
            break;
        case 'i':
        case 'I':
            ++countVowel[2];
            break;
        case 'o':
        case 'O':
            ++countVowel[3];
            break;
        case 'u':
        case 'U':
            ++countVowel[4];
            break;
    }
}