使用ArrayList在文本文件中查找唯一单词

时间:2016-03-04 08:53:56

标签: java arraylist

我正在进行一个项目,我输入一个URL,读取文件,并在文本文件中输出行数,字符数和单词数。我没有遇到问题。下面的代码会很长,很抱歉。

我还必须将相同的文本文件输出到文件中的所有单词,以及每个单词在文件中显示的次数。我已经研究了一段时间了,我已经到了将所有行/字符/单词输出到文本文件的地步,但我无法弄清楚如何显示实际的单词和数量他们在文件中的时间。

                String[] wordSubstrings = line.replaceAll("\\s+", " ").split(" ");

                List<String> uniqueWords = new ArrayList<String>();

                for (int i = 0; i < wordSubstrings.length; i++) {
                    if (!(uniqueWords.contains(wordSubstrings[i]))) {
                        uniqueWords.add(wordSubstrings[i]);

3 个答案:

答案 0 :(得分:0)

你可以使用包含word和count作为成员变量的类的arraylist。

List <MyClass> uniqueWords = new ArrayList<MyClass> ();

MyClass()
{
 String uniqueword;
 int count;
}

答案 1 :(得分:0)

您可以使用Multiset

Multiset<String> words = HashMultiset.create();
for (String word : wordList)
    words.add(word);

for (String word : words.elementSet())
    System.out.println(word + ": " + words.count(word));

答案 2 :(得分:0)

我已经使用HashMap测试了一些似乎运行良好的东西。

这是我用来测试它的代码,我希望它有所帮助:

String[] wordSubstrings = new String[]{"test","stuff","test","thing","test","test","stuff"};
HashMap<String,Integer> uniqueWords = new HashMap<>();

for ( int i = 0; i < wordSubstrings.length; i++)
{
    if(!(uniqueWords.containsKey(wordSubstrings[i])))
    {
        uniqueWords.put(wordSubstrings[i], 1);
    }
    else
    {
        int number = uniqueWords.get(wordSubstrings[i]);
        uniqueWords.put(wordSubstrings[i],number + 1);
    }
}

for (Map.Entry<String, Integer> entry : uniqueWords.entrySet()) {
    String key = entry.getKey();
    int value = entry.getValue();

     //Do Something with the key and value
}