一段英文中找无重复单词及个数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/junjunba2689/article/details/82055347

思路:

1.读入文件
2.按行读,每行以空格分割得到str数组
3.将str数组中每个单词添加到hashmap
4.遍历hashmap,value为1的输出,并统计个数

    //一段英文中找无重复单词及个数
    public static void findSingleWord() throws IOException{
        File file = new File("e:/info.log");
        BufferedReader br = new BufferedReader(new FileReader(file));

        Map<String,Integer> map = new HashMap<>();
        String line = br.readLine();
        while(line!=null){
            String[] arr=line.split(" ");
            for(int i=0;i<arr.length;i++){
                if(map.get(arr[i])==null){
                    map.put(arr[i],1);
                }else{
                    map.put(arr[i], map.get(arr[i])+1);
                }
            }
            line = br.readLine();
        }

        int count = 0;
        for(Map.Entry<String, Integer> item:map.entrySet()){
            if(item.getValue()==1){
                System.out.println(item.getKey());
                count++;
            }
        }
        System.out.println(count);
        br.close();

        //排序,输出出现次数最多的单词和次数
        List<Map.Entry<String,Integer>> list = new ArrayList<>(map.entrySet());
        Collections.sort(list, new Comparator<Map.Entry<String, Integer>>(){

            @Override
            public int compare(Entry<String, Integer> o1,
                    Entry<String, Integer> o2) {
                return o2.getValue()-o1.getValue();
            }

        });

        int i =0;
        while(i<3){
            Map.Entry<String, Integer> item = list.get(i);
            System.out.println(item.getKey()+"---"+item.getValue());
            i++;
        }
    }

猜你喜欢

转载自blog.csdn.net/junjunba2689/article/details/82055347
今日推荐