1

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

输入一句话:我是java新手

新的

爪哇

元音数:我是 java 新手 = 6

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

例如,输出应该是这样的:

输入一句话:我是java新手

我 (1)

上午 (1)

新 (1)

到 (1)

爪哇 (2)

元音数:我是 java 新手 = 6

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

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

4

3 回答 3

2

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

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

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

于 2013-05-03T23:47:59.867 回答
1

我建议构建一个字符串并遍历每个字符并检查元音。

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");
于 2013-05-03T23:56:09.520 回答
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
于 2014-10-28T11:11:47.527 回答