我很难让这个程序开始工作,有人能看一下它并给我一个关于该做什么的提示吗?谢谢!
设计并实现一个从用户读取字符串的应用程序,然后确定并打印每个小写元音(a、e、i、o和u)在整个字符串中出现的数量。每个元音都有一个单独的计数器。还可以计数和打印非元音字符的数量。 提示、标签和输出的规范:您的代码应该使用提示符"enter:“。在读取输入后,有六行输出,每一行以不同的标签开头:"a:“、"e:”、"i:“、"o:”、"u:“、"other:”。在每个标签之后是所需的计数。 例如:如果读取"aardvark heebie jeebies“,输出将是:
a: 3
e: 6
i: 2
o: 0
u: 0
other: 12 import java.util.Scanner;
public class VowelAnalyst{
public static void main(String args []){
int a =0, e = 0, x = 0;
int u = 0, o = 0, other = 0;
String text;
Scanner scan = new Scanner(System.in);
System.out.print("enter string: ");
text = scan.nextLine();
for (int i = 0; i < text.length(); i++) {
char c = text.charAt(i);
if (c=='a')
a++;
else if( c=='e')
e++;
else if(c=='i')
x++;
else if(c=='o')
o++;
else if (c=='u')
u++;
else
other++;
}
System.out.println("a: " + a + "\n" +
"e: " + e + "\n" +
"i: " + x + "\n" +
"o: " + o + "\n" +
"u: " + u + "\n" +
"other: " + other);
}
}发布于 2013-05-06 15:33:09
除此部分外,您的代码是正确的:
else if (c != 'a' && 'e' && 'i' && 'o'&& 'u' )它应该写成这样:
else if (c != 'a' && c != 'e' && c != 'i' && c != 'o' && c != 'u')您可以通过将您拥有的所有if (第一个除外)转换为一个else if,并将最后一个else if (检查该字符是否为元音)转换为else,从而使代码更加清晰。
if (c == 'a')
{
a++;
}
else if (c == 'e')
{
e++;
}
else if (c == 'i')
{
x++;
}
else if (c == 'o')
{
o++;
}
else if (c == 'u')
{
u++;
}
else
{
other++;
}发布于 2013-05-06 15:29:49
您的if语句序列无效。有意义的引渡就像
if (c == 'a') a++;
else if (c == 'e') e++;
...
else other ++;然而,更好的选择是使用开关语句,如下所示
switch (c) {
case 'a':
a++;
break;
case 'e':
e++;
break;
case 'o':
o++;
break;
case 'u':
u++;
break;
default:
other++;
break;
}修复后,我们需要查看您缺少的内容:所有大写元音目前都被计算为other。我们可以在条件上加倍
if (c == 'a' || c == 'A')
...或
case 'A':
case 'a':
...但是有一种更简单的方法:在比较之前将字符串转换为小写。
for (int i = 0; i < text.length(); i++) {
char c = Character.toLowerCase(text.charAt(i));
switch (c) {
...发布于 2013-05-06 15:29:51
我会为每一个字符做
switch (c)
{
case 'a':
case 'A':
a++;
break;
case 'e':
case 'E':
e++;
break;
case 'i':
case 'I':
i++;
break;
case 'o':
case 'O':
o++;
break;
case 'u':
case 'U':
u++;
break;
default:
other++;
break;
}它只计算每一个元音和辅音。
https://stackoverflow.com/questions/16401925
复制相似问题