/*
* 统计一个字符串中每个字符出现的次数
* 主要知识点:
* 1.Character类的一个方法:isLetter(string),判断是否为字符
* 2.String 类的方法:toLowerCase()
* 3.字符与整形的混合运算
* */
import java.util.Scanner;
public class CountChar {
public static void main(String[] abc) {
// 首先提示输入一个字符串
System.out.println("Please enter a string :");
// 然后构造扫描器
Scanner input = new Scanner(System.in);
// 声明字符串变量接收输入的内容,并转成小写
String str = input.nextLine().toLowerCase();
int[] count = countLeter(str); // 调用统计方法
print(count); // 调用打印方法
}
//打印方法:将出现的字符打印
private static void print(int[] count) {
for (int i = 0; i < count.length; i++) {
if (count[i] != 0) {
String time = count[i]==1 ? "time" :"times";
System.out.println((char)('a' + i) + " appears " + count[i] +time);
}
}
}
// 统计一个字符串中某个字母出现次数的方法
private static int[] countLeter(String str) {
int[] counts = new int[26]; //存放每个字母出现的次数的计数器
for (int i = 0; i < str.length(); i++) {
//如果str的第i位是个字符,那么该字母对应位置的计数器自增
if (Character.isLetter(str.charAt(i))) {
counts[str.charAt(i) - 'a']++;
}
}
return counts;
}
}