package map;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
/* "aadsuifbnsiubfbisdkbhk"
* 打印字符出现的次数 如(a(2) b(4))
* 从小到大排序输出字符出现的次数(选用TreeMap)
*
* 这个集合最终应该存储的是字母和次数的对应关系
*
* 1,因为操作的是字符串中的字母,所以要先把字符串转成数组
* 2,遍历字符串数组,用没一个字母作为键去查map集合这个表
* 如果不存在键,就把该字母作为键存,1作为值存到map集合中。
* 如果存在这个键,那么就把集合中的键对应的值取出来加1,然后再存到集合中去。
* map集合的特点是键相同会覆盖掉值。这样就记录了该字母的次数了。
* 3,把字符串数组遍历结束,字母出现的次数也就记录完毕了。
*
*/
public class StringNumber {
public static void main(String[] args) {
String string = "aadsuifbns2534ADFDSiubfbisdkbhk";
String[] strArr = new String[string.length()];
for (int i = 0; i < string.length(); i++) {
strArr[i] = string.substring(i, i + 1);
}
Map<String, Integer> treeMap = new TreeMap<String, Integer>();
for (int i = 0; i < strArr.length; i++) {
if (!(strArr[i].compareTo("a")>=0 && strArr[i].compareTo("z")<=0||
strArr[i].compareTo("A")>=0 && strArr[i].compareTo("Z")<=0
) )
{
continue;
}
Integer value = treeMap.get(strArr[i]);
if (value == null) {
treeMap.put(strArr[i], 1);
} else {
treeMap.put(strArr[i], value + 1);
}
}
Iterator<String> tIterator = treeMap.keySet().iterator();
while (tIterator.hasNext()) {
String key = tIterator.next();
Integer value = treeMap.get(key);
System.out.print(key + "(" + value + ")");
}
}
}