输入字符串,统计字符串中出现频率次数最多的字符,并统计次数,以及每个字符字符出现的次数

import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;
/**
 * 开发一个程序,能接收用户输入的一行英文,统计字符串中出现频率次数最多的字符,并统计次数,以及每个字符字符出现的次数
 * @author Song
 *
 */
public class ReciptWord {
    public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入字符串:");
String str=sc.nextLine();

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

char[] chs=str.toCharArray();
   for(char c:chs){
    Integer i=tm.get(c);
    if(i==null){
    tm.put(c, 1);
    }else{
    i++;
    tm.put(c, i);
    }
   }
  
   Set<Character> set=tm.keySet();// 获得所有key值  
   Iterator<Character> it = set.iterator();// 实例化Iterator
   Character maxKey = (Character) it.next();// 定义第一个为最大value和对应的key  
        int maxValue = tm.get(maxKey);  //获得key最大值的maxValue的次数
        while (it.hasNext()) {  
            Character k = (Character) it.next();  
            if (maxValue < tm.get(k)) {  
                maxKey = k;  
                maxValue = tm.get(k);  
            }  
        }  
        System.out.println("出现次数最多的字符:" + maxKey + " 出现次数:" + maxValue); 
        
        /*
         * 统计每个字符的个数
         */
//    定义字符串缓冲区
//   StringBuilder sb=new StringBuilder();
//    遍历集合,得到键和值
//    Set<Character> set=tm.keySet();
//    for(Character key:set){
//     Integer value=tm.get(key);
//    
//     sb.append(key+"出现").append(value+"次\n");
//    }
// 把字符串缓冲区转换为字符串输出
//    String result=sb.toString();
//    System.out.println(result);
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值