import java.util.Arrays;
import java.util.HashMap;
import java.util.TreeMap;
public class Test1 {
/**
* @param args
* *Test1--取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq",输出格式为:a(2)b(1)k(2)...
*/
public static void main(String[] args) {
String s = "abcdekka27qoq"; //定义一个被统计的字符串
String regex = "\\d"; //用正则去掉数字
String s1 = s.replaceAll(regex,""); //abcdekkaqoq
char[] arr = s1.toCharArray(); //把字符串转换为字符数组
Arrays.sort(arr); //把字符数组按照字典顺序排序
TreeMap<Character, Integer> hm = new TreeMap<>(); //定义双列集合,存储字符串中字符以及字符出现的次数
//遍历字符数组获取每一个字符,并将字符存储在双列集合中
for (char c : arr) { //把字符数组存储在集合中,如果集合中包含这个键,就将值加1存储
if (!hm.containsKey(c)) { //如果集合中不存在这个键,就将该字符当键,值为1存储
hm.put(c, 1);
}else{
hm.put(c, hm.get(c) + 1);
}
}
//打印双列集合获取字符出现的次数
for (Character key : hm.keySet()) { //遍历集合中的所有键,hm.keySet()
System.out.print(key + "("+ hm.get(key)+ ")"); //通过键获取值hm.get(key)
}
}
}
|
|