本帖最后由 yufeiant 于 2012-7-10 00:38 编辑
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class Test3 {
// 统计字符串”abadcdffbaeba”中每个字符出现了多少次,按次数排序并输出。
// 例如:c : 1,e : 1,d : 2,f : 2,b : 3,a : 4
// 思路:把这个字符串转化为字符数组,然后便利所有的数组,把每个元素取出,建立一个TreeMap集合对象,把每个元素作为键放入TreeMap
//对象中,如果集合中没有这个元素,那么键值对的值加一并和这个这个元素一起存储到TreeMap集合中,如果有了就不存入这个元素,把所有的
//的元素都都放到集合中,然后把这个集合装换成字符串
public static void main(String[] args) {
String str = "c : 1,e : 1,d : 2,f : 2,b : 3,a : 4";
TreeMap<Character, Integer> tm = gerTreeMap(str);
StringBuffer ss = ToStringTreeMap(tm);
System.out.println(ss);
}
public static TreeMap<Character, Integer> gerTreeMap(String str){
TreeMap<Character, Integer> tr = new TreeMap<Character,Integer>();
char [] arr = str.toCharArray();
for(int x = 0;x<arr.length;x++)
{
char c = arr[x];
Integer i = tr.get(c);
if(!tr.containsKey(c))
{
tr.put(c, 1);
}
else{
i++;
tr.put(c, i);
}
}
return tr;}
public static StringBuffer ToStringTreeMap(TreeMap<Character, Integer> tr)
{
//对集合进行转换,把其转换为字符串,在转换的同时把其他的都吸添加进去
StringBuffer sbf = new StringBuffer();
Set<Map.Entry<Character,Integer>> st = tr.entrySet();
Iterator<Map.Entry<Character,Integer>> it = st.iterator();
while(it.hasNext()){
Map.Entry<Character,Integer> mp = it.next();
Character key = mp.getKey();
Integer value = mp.getValue();
sbf.append(key).append(":").append(value);
}
return sbf;
}
}
运行结果却是这样,当时就崩溃了:121:22:23:14:1::6a:1b:1c:1d:1e:1f:1,:5
|
|