/*
* 2、 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,
* 输出格式为:a(2)b(1)k(2)...
*
*
*/
package com.itheima;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;
public class Test2 {
public static void main(String[] args) {
// 创建一个键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串");
// 接收键盘录入的字符串
String str = sc.nextLine();
// 将字符串转化成字符数组
char[] ch = str.toCharArray();
// 创建一个键值对集合对象
TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
// for循环计算出字符出现的次数,并以键值对的形式存入集合
for (Character c : ch) {
Integer count = tm.get(c);
// count为空,说明没有改键
if (count == null) {
tm.put(c, 1);
// 不为空,就让统计变量+1
} else {
count++;
tm.put(c, count);
}
}
// 定义一个缓存变量,用于接收输出值
StringBuffer result = new StringBuffer();
// 循环得到每一个键和值并拼接
Set<Character> set = tm.keySet();
for (Character key : set) {
Integer value = tm.get(key);
result.append(key).append("(").append(value).append(")");
}
System.out.println(result);
}
}
|
|