使用java中的输入/输出程序计算单词的出现次数

时间:2015-03-20 02:09:06

标签: java file-io input io find-occurrences

如何使用输入/输出程序在具有五个或更多字母的文件中找到最常出现的单词?这是我的初学者代码

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;


public class FileIOtest {

/**
 * @param args
 * @throws FileNotFoundException 
 */
public static void main(String[] args) throws FileNotFoundException {
    // TODO Auto-generated method stub
    File file = new File ("myfile.txt");
    Scanner inputFile = new Scanner(file);

    while(inputFile.hasNext())
    {
        String str =inputFile.nextLine();
        System.out.println(str);
    }
    inputFile.close();

}

}

1 个答案:

答案 0 :(得分:0)

我会创建一个hashmap,它在一个单词和一个计数器之间保存一个键值对,用于出现次数。

Map<String, Integer> myMap = new HashMap<String, Integer>();

您应该通过空格分割每一行,然后遍历拆分字符串的数组。然后,您可以检查该单词是否为5个或更多字符,并在hashmap

中增加计数器
    String str = inputFile.nextLine();
    String[] parts = str.split(" ");
    for(int x  = 0; x < parts.length; x++)
    {
        String word = parts[x];
       if(word.length() >= 5)
       {
           if(myMap.containsKey(word))
           {
              myMap.put(word, myMap.get(word) + 1);
           }
           else
           {
              myMap.put(word, new Integer(1));
           }
       }
    }

然后在最后,您可以使用HashMap获取myMap.entrySet()的内部集。然后通过该集合进行交互,找到第一,第二,第三等最常见或最不常见的单词。