題目:取出一個字符串中字母出現(xiàn)的次數(shù)。如:字符串:"abcdekka27qoq" 匿沛,輸出格式為:a(2)b(1)k(2)...
其實(shí)這個題目和我出的統(tǒng)計(jì)每道題的錯誤個數(shù)是一個解法。
題目取自黑馬程序員論壇鳖孤,在論壇上很多這個題目解法都是千篇一律的集合抡笼、set、map去解決推姻,咱們班同學(xué)給我的代碼也不例外,其實(shí)沒有那么復(fù)雜增炭,數(shù)組就搞定了,通過查找ASCII碼表隙姿,A-Z 65-90 a-z 97-122既然只要字母的數(shù)量厂捞,直接統(tǒng)計(jì)就行了,所以可以通過數(shù)組下標(biāo)做標(biāo)記的方式去解決這個問題:很多時候靡馁,我覺得解決問題,需要的是一種思想赔嚎,代碼越簡單越容易解決問題胧弛。
/**
* 統(tǒng)計(jì)字母出現(xiàn)的個數(shù),并按字典順序輸出指定格式
* @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] + ")");
}
}
}
}
}