从用户输入的句子中查找每个单词中的元音(java)

时间:2013-05-03 23:44:53

标签: java split sentence text-segmentation

我有一个程序提供以下输出:

  

输入句子:我是java的新手

     

     

上午

     

     

     

的java

     

元音数量:我是java = 6的新手

我的问题是我需要在用户输入的句子的每个单词中获取元音。

例如输出应该是这样的:

  

输入句子:我是java的新手

     

我(1)

     上午(1)

     

new(1)

     

到(1)

     

java(2)

     

元音数量:我是java = 6的新手

我使用.split()来分隔输入的句子并切换/.charAT语句以进行元音检查。

有人可以帮我实现这个结果吗?

3 个答案:

答案 0 :(得分:2)

整个解决方案只需要几行代码:

for (String word : sentence.split(" +"))
    System.out.println(word + " (" + 
      word.replaceAll("[^aeiouAEIOU]", "")
      .length() + ")");

它的工作方式是调用replaceAll()删除所有非元音,所以剩下的只是元音,那么你只需要取这个元音字符串的长度。

答案 1 :(得分:1)

我建议构建一个String并循环遍历每个char并检查元音。

String test = "I am new to Java";
int vowels = 0;

for (char c: test.toLowerCase().toCharArray()){
    if(c == 'a' || c =='e' || c=='i' || c=='o' || c=='u' ){
        vowels++;
    }
}
System.out.println(test + " Contains: " +vowels +" Vowels");

答案 2 :(得分:0)

String n = "I am in Madurai";
int count = 0;
char c[] = new char[n.length()];
n.getChars(0, n.length, c, 0);

for(int i = 0; i < c.length; i++) {
    if (c[i] == 'a' || c[i] == 'e' || c[i] == 'i' || c[i] == 'o' || c[i] == 'u')
        count++;
}
System.out.println("Number of vowels in a given sentence: " + count);

<强>输出:

Number of vowels in a given sentence: 7