日期:2014-05-20 浏览次数:20670 次
import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.TreeMap; public class Test{ public static void main(String[] args){ getCharCount("sfadafsaffsdafsdafsd"); } public static void getCharCount(String str){ // int count=0; Map<Character,Integer>map = new TreeMap<Character,Integer>(); char[] chs=str.toCharArray(); for(int x=0;x<str.length();x++){ Character ch=chs[x]; Integer value=map.get(ch); map.entrySet(); if(value!=null) value=value+1; value=1; map.put(ch,value); } /* * if(map.get(ch)==null) map.put(ch,1); else { value=value+1; * map.put(ch,value); } */ //}多了一括号吗? Set<Map.Entry<Character,Integer>> entrySet= map.entrySet(); Iterator<Map.Entry<Character,Integer>> it=entrySet.iterator(); while(it.hasNext()){ Map.Entry<Character,Integer>relation=it.next(); Character key=relation.getKey(); Integer value=relation.getValue(); System.out.println(key+"--"+value); } } }
------解决方案--------------------
if(value==null)
value=1;
map.put(ch,--value+1);
你这样写的结果就是你value不为null的时候记录的值不变了,你也可以写成这个样子
if(value == null) {
value = 0;
}
map.put(ch, value + 1);
这样的话为null记录的是1,不为null的就加了1