键盘输入一个字符串,统计每个字符出现的次数,并且按照结果格式输出

键盘输入一个字符串,统计每个字符出现的次数,并且按照结果格式输出。

/*
 * 需求:"aababcabcdabcde",获取字符串中每一个字母出现的次数,要求结果输出格式是:
 * a(5)b(4)c(3)d(2)e(1)

 *
 * 分析:
 *         A:定义一个字符串
 *         B:定义一个TreeMap集合
 *             键:Character
 *             值:Integer
 *         C:把字符串转换为字符数组
 *         D:遍历字符数组,得到每一个字符
 *         E:拿刚才得到的字符作为键去集合中找,看返回值:
 *             是null:说明该键不存在,就把该字符作为键,1作为值存储
 *             不是null:说明该键存在,就把值加1,然后重新存储该键和值
 *         F:定义字符串缓冲区变量
 *         G:遍历集合,得到键和值,按照要求拼接处理
 *         H:把字符串缓冲区转换为字符串输出
 */


/*
 * 需求:"aababcabcdabcde",获取字符串中每一个字母出现的次数,要求结果输出格式是:
 * a(5)b(4)c(3)d(2)e(1)
 * 
 * 分析:
 * 		A:定义一个字符串
 * 		B:定义一个TreeMap集合
 * 			键:Character
 * 			值:Integer
 * 		C:把字符串转换为字符数组
 * 		D:遍历字符数组,得到每一个字符
 * 		E:拿刚才得到的字符作为键去集合中找,看返回值:
 * 			是null:说明该键不存在,就把该字符作为键,1作为值存储
 * 			不是null:说明该键存在,就把值加1,然后重新存储该键和值
 * 		F:定义字符串缓冲区变量
 * 		G:遍历集合,得到键和值,按照要求拼接处理
 * 		H:把字符串缓冲区转换为字符串输出 
 */

package cn.itcast_02;

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

public class TreeMapDemo {
	public static void main(String[] args) {
		// 定义一个字符串:键盘录入方式
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个字符串:");
		String line = sc.nextLine();

		// 定义一个TreeMap集合
		TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();

		// 把字符串转换为字符数组
		char[] chs = line.toCharArray();

		// 遍历字符数组,得到每一个字符
		for (char ch : chs) {
			// 拿刚才得到的字符作为键去集合中找,看返回值
			Integer i = tm.get(ch);

			// 是null:说明该键不存在,就把该字符作为键,1作为值存储
			if (i == null) {
				tm.put(ch, 1);
			} else {
				// 不是null:说明该键存在,就把值加1,然后重新存储该键和值
				++i;
				tm.put(ch, i);
			}
		}

		// 定义字符串缓冲区变量
		StringBuilder sb = new StringBuilder();

		// 遍历集合,得到键和值,按照要求拼接处理
		Set<Character> set = tm.keySet();
		for (Character key : set) {
			Integer value = tm.get(key);
			sb.append(key).append("(").append(value).append(")");
		}

		// 把字符串缓冲区转换为字符串输出
		String resulut = sb.toString();
		System.out.println("resulut:" + resulut);
	}
}



  • 12
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值