日期:2014-05-20 浏览次数:20831 次
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