方法一:
使用循环加switch判断加计数变量
public static void main(String[] args){
FileInputStream in = new FileInputStream("hello.txt");
byte[] buffer = new byte[100];
int len;
int numA = 0;
int numE = 0;
int numI = 0;
int numO = 0;
int numU = 0;
while ((len = in.read(buffer)) != -1){
String str = new String(buffer,0,len);
for (int i = 0; i < len; i++) {
char c = str.charAt(i);
switch (c){
case 'a':
numA++;
break;
case 'e':
numE++;
break;
case 'i':
numI++;
break;
case 'o':
numO++;
break;
case 'u':
numU++;
break;
default:
break;
}
}
}
System.out.println("a的个数:" + numA);
System.out.println("e的个数:" + numE);
System.out.println("i的个数:" + numI);
System.out.println("o的个数:" + numO);
System.out.println("u的个数:" + numU);
}
方法二:
使用Map
public static void main(String[] args) throws IOException {
FileInputStream in = new FileInputStream("hello.txt");
Map<Character,Integer> map = new HashMap<>();
byte[] buffer = new byte[100];
int len;
while ((len = in.read(buffer)) != -1){
String str = new String(buffer,0,len);
for (int i = 0; i < len; i++) {
char c = str.charAt(i);
if(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u'){
if(!map.containsKey(c)){
map.put(c, 1);
}else{
map.put(c, map.get(c) + 1);
}
}
}
}
Set<Character> keySet = map.keySet();
for(Character key : keySet){
System.out.println(key + ":" + map.get(key));
}
}