#日常练习
要求:找出一字符串中相同字符的个数,
例如:str = "ababac",结果应当为a(3) b(2) c(1)
思路: 由结果看出存在对应关系,所以采用TreeMap存储,
将字符串转化为字符数组,拿逐个字符到集合中查询是否包含
若包含则将Value值取出自增后放回
若不包含则存入(arr[i],1)
package Map;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeMap;
/*
* 要求:找出一字符串中相同字符的个数,
* 例如:str = "ababac",结果应当为a(3) b(2) c(1)
* 思路: 由结果看出存在对应关系,所以采用TreeMap存储,
* 将字符串转化为字符数组,拿逐个字符到集合中查询是否包含
* 若包含则将Value值取出自增后放回
* 若不包含则存入(arr[i],1)
* */
public class HashMapTest2 {
public static String count(String str) {
char[] arr = str.toCharArray();
TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
for (int i = 0; i < arr.length; i++) {
Set<Character> keySet = tm.keySet();
if (keySet.contains(arr[i]))
tm.put(arr[i], (Integer)tm.get(arr[i])+1);
else {
tm.put(arr[i], 1);
}
}
Set<Character> keySet = tm.keySet();
StringBuilder sb = new StringBuilder();//转存储
for (Iterator<Character> it = keySet.iterator(); it.hasNext();) {
Character c = it.next();
sb.append(c + "(" + tm.get(c) + ")");
}
return sb.toString();
}
public static void main(String[] args) {
String str = "bbcacbda";
str = count(str);
System.out.println(str);
}
}