我有一个提供以下输出的程序:
输入一句话:我是java新手
我
是
新的
至
爪哇
元音数:我是 java 新手 = 6
我的问题是我需要获取用户输入的句子的每个单词中的元音。
例如,输出应该是这样的:
输入一句话:我是java新手
我 (1)
上午 (1)
新 (1)
到 (1)
爪哇 (2)
元音数:我是 java 新手 = 6
我正在使用 .split() 分隔输入的句子并切换 /.charAT 语句以进行元音检查。
有人可以帮我实现这个结果吗?
我有一个提供以下输出的程序:
输入一句话:我是java新手
我
是
新的
至
爪哇
元音数:我是 java 新手 = 6
我的问题是我需要获取用户输入的句子的每个单词中的元音。
例如,输出应该是这样的:
输入一句话:我是java新手
我 (1)
上午 (1)
新 (1)
到 (1)
爪哇 (2)
元音数:我是 java 新手 = 6
我正在使用 .split() 分隔输入的句子并切换 /.charAT 语句以进行元音检查。
有人可以帮我实现这个结果吗?
整个解决方案只需要几行代码:
for (String word : sentence.split(" +"))
System.out.println(word + " (" +
word.replaceAll("[^aeiouAEIOU]", "")
.length() + ")");
它的工作方式是调用replaceAll()
删除所有非元音,所以剩下的只有元音,然后你只需取那个只有元音的字符串的长度。
我建议构建一个字符串并遍历每个字符并检查元音。
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");
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