本帖最后由 Friendy89 于 2013-8-4 23:25 编辑
程序设计到最后怎么按次数进行排序,没有思路,还有就是输出字符串最后的逗号怎么去掉。
import java.util.Map;
import java.util.TreeMap;
/*
* 统计字符串“sdfvgzxcvasdvfxcvdf”中每个字符出现的次数,按次数排序并输出。
* 例如:a:1,g:1,z:1,c:2...
*/
public class MapAdvTest {
public static void main(String[] args) {
String str = "sdfvgzxcvasdvfxcvdf";
String s = getCharCount(str);
System.out.println(s);
}
public static String getCharCount(String str) {
//1,将字符串变成字符数组
char[] chs = str.toCharArray();
//2,定义map集合用于存放字母和次数
Map<Character,Integer> map = new TreeMap<Character,Integer>();
//3,遍历字符数组,将遍历的字母和次数存放在map中
for (int i = 0; i < chs.length; i++) {
Integer value = map.get(chs);//这里是chs"["i"]",中括号不知打不出来,所以用引号扩了一下
int count = 0 ;
if(value!=null){
count = value ;
}
count++;
map.put(chs, count);//这里也跟上面一样
}
return mapToString(map);//将map集合转成字符串
}
public static String mapToString(Map<Character, Integer> map) {
//定义一个容器,用于存放字符串
StringBuilder sb = new StringBuilder();
//遍历map集合
for(Map.Entry<Character, Integer> me : map.entrySet()){
Character key = me.getKey();
Integer value = me.getValue();
sb.append(key+":"+value+","); //这里怎么将最后一个字符串后面的逗号去掉
}
return sb.toString();
}
}
|