获取该字符串中每一个字母出现的个数
   “GZITCASTADVANCEDTRAININGJAVASEJAVAEE ANDROID”
我在网上找到的代码是这样的,但因为我没有学过集合类,所以看不懂,希望大家能给我详细解析一下
package itcast.Exam;import java.security.KeyStore.Entry;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;/*
 * 6、获取该字符串中每一个字母出现的个数(10)。
 * “GZITCASTADVANCEDTRAININGJAVASEJAVAEE ANDROID”
 * 
 * 这题因为在基础方面的集合类学习的不是很深入所以感觉不是很懂!
 *  还有待继续学习!
 */
public class Exam6 { /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "GZITCASTADVANCEDTRAININGJAVASEJAVAEE ANDROID";
System.out.println("每个字符串出现的个数如下:");
System.out.println(strCount(str));
}

public static String strCount(String str){
char[] ch = str.toCharArray();
Map<Character, Integer> map = new TreeMap<Character, Integer>();

for (int i = 0; i < ch.length; i++) {
Integer value = map.get(ch[i]);
int count = 1;
if (value != null) {
count = value + 1;
}
map.put(ch[i], count);
}
return toNewString(map);
}

public static String toNewString(Map<Character, Integer> map){
StringBuilder sBuilder = new StringBuilder();
Iterator<java.util.Map.Entry<Character, Integer>> iterator = map.entrySet().iterator();

while (iterator.hasNext()) {
java.util.Map.Entry<Character, Integer> entry = iterator.next();
char ch1 = entry.getKey();
int value = entry.getValue();
sBuilder.append(ch1+"{"+value+"}"+" ");
}
return sBuilder.toString();
}
}
javacharacteriteratorstring

解决方案 »

  1.   

    Map是一个集合
    对应一个主键和一个值
    这个题中的map
    主键为这个字母,值为次数。
    就这些。
    如果看不懂真的说明你java还学得比较浅。
    继续努力吧。
      

  2.   

    其实代码很简单,而且你也分析出原因了。你不会集合类。。
    推荐你看一下Map,然后就能明白代码的意思了。
      

  3.   

    集合 ,是java基础中很重要的一部分,lz去看看吧
      

  4.   

    前天刚学了Map,晚上回去把这段代码试一下。 
      

  5.   

    我突然发现CSDN的表情很酷啊,呵呵
      

  6.   

    如果全是大(小)写字母可以用数组。
    Map<K,V>是通用解法
    K:键,V:值