本帖最后由 杜光 于 2013-7-28 09:40 编辑
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
public class MapTest {
/**
* 练习:
* 实现需求:"fdgavcbsacdfs"获取该字符串中,每一个字母出现的次数。
* 要求打印结果:a(2)b(1)……;
*/
public static void main(String[] args) {
String str = "fdgavcbsacdfs";
//定义方法实现功能封装
String s = getCherCount(str);
//显示打印结果
System.out.println(s);
}
private static String getCherCount(String str) {
// 1.将字符串变成字符数组 toCharArray()方法
char[] charArray = str.toCharArray();
// 2.定义一个Map集合表
Map<Character,Integer> map = new TreeMap<Character,Integer>();
// 遍历数组
for (int i = 0; i < charArray.length; i++) {
if (charArray >= 'a' && charArray <= 'z'
|| charArray >= 'A' && charArray <= 'Z')
continue;
{
// 将数组中的字母作为键去查Map表
Integer value = map.get(charArray);
// 判断值是否为null
if (value == null) {
map.put(charArray, 1);
}
// 如果字符已经存在
else {
map.put(charArray, value + 1);
}
}
}
return maptoString(map);
}
private static String maptoString(Map<Character, Integer> map) {
StringBuilder sb = new StringBuilder();
Iterator<Character> it = map.keySet().iterator();
while (it.hasNext()) {
Character key = it.next();
Integer value = map.get(key);
sb.append(key + "(" + value + ")");
}
return sb.toString();
}
}
//程序运行没有结果,编译没有报错,哪里出问题 了?
|