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 + ")"); }
} }