题目:取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...
其实这个题目和我出的统计每道题的错误个数是一个解法。
题目取自黑马程序员论坛,在论坛上很多这个题目解法都是千篇一律的集合、set、map去解决,咱们班同学给我的代码也不例外,其实没有那么复杂,数组就搞定了,通过查找ASCII码表,A-Z 65-90 a-z 97-122既然只要字母的数量,直接统计就行了,所以可以通过数组下标做标记的方式去解决这个问题:很多时候,我觉得解决问题,需要的是一种思想,代码越简单越容易解决问题。
/**
* 统计字母出现的个数,并按字典顺序输出指定格式
* @author Looper
*
*/
public class Test {
public static void main(String[] args) {
String str = "abcdekka27qoq";
char[] buf = str.toCharArray();
int[] num = new int[123];
for (int i = 0; i < buf.length; i++) {
num[buf[i]]++;
}
for (int i = 0; i < num.length; i++) {
if ((i >= 65 && i <= 90) || (i >= 97 && i <= 122)) {
if (num[i] > 0) {
System.out.print((char) i + "(" + num[i] + ")");
}
}
}
}
}