集合中字符串出现次数处理

package com.heimazuoye;

import java.util.Scanner;
import java.util.TreeMap;

public class Test_01 {
public static void main(String[] args) {
/*
需求:
1. 键盘录入一个字符串,要求统计字符串中每个字符串出现的次数。
2. 举例:键盘录入“aababcabcdabcde” 在控制台输出:“a(5)b(4)c(3)d(2)e(1)”
*/
//1. 创建Scanner对象.
Scanner sc = new Scanner(System.in);
//2. 创建TreeMap集合对象, 字符作键, 次数做值.
TreeMap<Character, Integer> tm = new TreeMap<>();
//3. 提示用户录入字符串, 并接收.
System.out.println(“请录入一个字符串: “);
String result = sc.nextLine();
//4. 将用户录入的字符串转成字符数组.
char[] chs = result.toCharArray();
//5. 遍历, 获取到每一个字符.
for (char ch : chs) {
//6. 判断该字符在双列集合中是否存在.
if (!tm.containsKey(ch)) {
//6.1 不存在, 直接存储, 次数记录为1.
tm.put(ch, 1);
} else {
//6.2 存在, 就将次数+1, 然后存储.
tm.put(ch, tm.get(ch) + 1);
}
}
//7. 将双列集合中的数据拼接成指定的字符串.
StringBuilder sb = new StringBuilder();
for (Character key : tm.keySet()) {
sb.append(key).append(”(”).append(tm.get(key)).append(")");
}
//8. 打印结果.
String s = sb.toString();
System.out.println(s);
}
}

上一篇:Java中的SortedBiTreeMultimap数据结构?


下一篇:Map接口(集合续)