在这里我们可以利用字母的ASCII码作为数组下标进行计数。
import java.util.Scanner;
public class StatisticalCharacters {
public static void main(String[] args) {
int b[] = new int[150];
char[]a = new char[150];
Scanner sc = new Scanner (System.in);
String s = sc.nextLine();
//charAt()不能识别空格,因此需要删除空格
String s1 = s.replaceAll(" ", "");
for(int i = 0;i<s1.length();i++) {
a[i] = s1.charAt(i);
}
//利用ASCII码作为数组下标来计数,先初始化数组每个元素都为0,当字母出现时转化为对应的ASCII码然后在对应下标的数组元素计数一次。
for(int i = 0;i<s1.length();i++) {
int book = (int)(a[i]);
b[book]++;
}
//这里排除掉那些出现次数为0的小写字母
for(int i = 97;i<=122;i++) {
if(b[i]!=0) {
System.out.print((char)i+":");
System.out.print(b[i]+" ");
}
}
}
}
萌新小白第一次写博客,若是发现有什么问题,还请各位大佬们指出错误不吝赐教啊。