此算法中,若想要得到高效率的时间复杂度,可以通过定义一个大小为52的整型数组,包含26个小写字母和26个大写字母,分别统计每个字母出现的次数,然后遍历数组,输出每个字母出现的次数。
public static void CharCount(String str1) {
int[] count = new int[52];
for(int i=0; i<str1.length(); i++){
char tmp = str1.charAt(i);
if(tmp>=65&& tmp<=90) {
int index = tmp - 65;
count[index] = count[index] + 1;
}
else if(tmp>=97&& tmp<=122) {
int index = tmp - 71;
count[index] = count[index] + 1;
}
}
for(int j=0; j<26; j++){
if(count[j]!=0)
System.out.println("字母"+(char)(j+65)+"出现次数:"+count[j]);
}
for(int k=26;k<count.length;k++) {
if(count[k]!=0)
System.out.println("字母"+(char)(k+71)+"出现次数:"+count[k]);
}
}