題目:取出一個字符串中字母出現的次數。如:字符串:"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] + ")");
}
}
}
}
}