import java.util.*;
import java.lang.String;
public class counter
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
int space = 0,vowel = 0,chara = 0,i;
System.out.println(" Enter String ");
String s =in.nextLine();
for( i = 0; i < s.length(); i++)
{
char ch = in.next().charAt(i);
if(ch == ' ')
space++;
if(ch == 'e' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')
vowel++;
else
chara++;
System.out.println("Number of Vowels = "+vowel);
System.out.println("Number of Spaces = "+space);
System.out.println("Number of Char = "+chara);
}
}
}
出什么问题了?我已经设置了三个柜台。我正在Eclipse中进行编码,每当检查控制台时,我都无法计数字符。它只是接受输入而没有做任何其他事情。
答案 0 :(得分:2)
删除char ch = in.next().charAt(i);
,并将ch
的其他实例替换为s.charAt(i)
第一张charAt
支票也应该是a
,您有两次e
。
然后将System.out.println...
移出循环。
答案 1 :(得分:1)
您应将s = in.next().charAt(i);
更改为String s =in.nextLine()
,并将System.out.println
放在for循环之外。
还有一个双“ e”(在@Ted Hopp的帮助下):
ch == 'e' || ch == 'e'
至ch == 'e' || ch == 'a'
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
int space = 0,vowel = 0,chara = 0,i;
System.out.println(" Enter String ");
String s =in.nextLine();
for( i = 0; i < s.length(); i++)
{
char ch = s.charAt(i);
if(ch == ' ')
space++;
if(ch == 'e' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')
vowel++;
else
chara++;
}
System.out.println("Number of Vowels = "+vowel);
System.out.println("Number of Spaces = "+space);
System.out.println("Number of Char = "+chara);
}
答案 2 :(得分:1)
只有两个拼写错误。更改代码,
@PersistenceContext
和
String s = in.nextLine().toLowerCase();
和
char ch = s.charAt(i);
在您的代码中,您使用小写字母与用户输入进行比较。因此,您应该首先将用户输入转换为小写。您当前的代码将忽略所有大写的元音(E,A,I ...)。使用if(ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')
。
通过使用toLowerCase()
,in.next()
正在等待输入。由于您已经使用Scanner
进行了输入,因此可以使用它。
下一个显然是印刷错误。元音是A,E,I,O,U。