JAVA-统计英文句子中出现次数最多的单词和出现的次数

import java.util.*;

/**
 * 统计出现次数最多的单词和它出现的次数
 * @author ZHR
 */
public class CountWord {
    public static String [] strTostrArray(String str) {
        /*
         * 将非字母字符全部替换为空格字符" "
         * 得到一个全小写的纯字母字符串包含有空格字符
         */
        str=str.toLowerCase();//将字符串中的英文部分的字符全部变为小写
        String regex="[\\W]+";//非字母的正则表达式 --\W:表示任意一个非单词字符
        str=str.replaceAll(regex, " ");
        String[] strs=str.split(" "); //以空格作为分隔符获得字符串数组
        return strs;
    }
    public static void countword(String [] strs) {
        /*
         * 建立字符串(String)出现次数(Integer)的映射
         */
        HashMap<String, Integer> strhash = new HashMap<String, Integer>();
        Integer in=null;//用于存放put操作的返回值
        for(String s:strs){//遍历数组 strs
            in=strhash.put(s, 1);
            if(in!=null){//判断如果返回的不是null,则+1再放进去就是出现的次数
                strhash.put(s, in+1);
            }
        }
        Set<java.util.Map.Entry<String, Integer>> entrySet=strhash.entrySet();
        String maxStr=null;//用于存放出现最多的单词
        int maxValue=0;//用于存放出现最多的次数                
        for(java.util.Map.Entry<String, Integer> e:entrySet){
            String key=e.getKey();
            Integer value=e.getValue();
            if(value>maxValue){
                maxValue=value;//这里有自动拆装箱
                maxStr=key;
            }
        }
        System.out.println("出现最多的单词是:"+maxStr+"出现了"+maxValue+"次");
     }
    public static void main(String[] args) {
        Scanner scan=new Scanner(System.in);
        System.out.println("请输入一行英文句子:");
        String str=scan.nextLine();
        System.out.println("输入的英文句子为:"+str);
        String [] strs=strTostrArray(str);
        countword(strs);
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值