Problem Description
统计每个元音字母在字符串中出现的次数。
Input
输入数据首先包括一个整数n,表示测试实例的个数,然后是n行长度不超过100的字符串。
Output
对于每个测试实例输出5行,格式如下:
a:num1
e:num2
i:num3
o:num4
u:num5
多个测试实例之间由一个空行隔开。
Sample Input
2
aeiou
my name is ignatius
Sample Output
a:1
e:1
i:1
o:1
u:1
a:2
e:1
i:3
o:0
u:1
注:
nextLine()会把nextInt(),next(),nextDouble(),nextFloat()的结束换行符作为字符串读入,进而不需要从键盘输入字符串nextLine便已经转向了下一条语句执行。
解决办法:
在每一个nextInt(),next(),nextDouble(),nextFloat()后都加一个nextLine()语句,将被next()去掉的Enter过滤掉。
代码如下:
reader.nextLine;
删除线格式
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner reader = new Scanner(System.in);
int num = reader.nextInt();
reader.nextLine();
for(int h = 0; h < num; h++) {
String str = null;
int a = 0, e = 0, i = 0, o = 0, u = 0;
str = reader.nextLine();
int n = str.length();
String q[] = str.split("");
for(int r = 0; r < n; r++) {
if (q[r].equals("a")) a++;
else if (q[r].equals("e")) e++;
else if (q[r].equals("i")) i++;
else if (q[r].equals("o")) o++;
else if (q[r].equals("u")) u++;
}
System.out.println("a:"+a);
System.out.println("e:"+e);
System.out.println("i:"+i);
System.out.println("o:"+o);
System.out.println("u:"+u);
System.out.println();
}
}
}