在文件中查找唯一的单词 - Java

ice*_*ted 0 java

使用msdos窗口我在amazon.txt文件中管道.我正在尝试使用集合框架.请记住,我希望尽可能简化这一点.我想要做的是计算文件中的所有独特单词...没有重复.

这就是我到目前为止所拥有的.请善意这是我的第一个java项目.

import java.util.Scanner;
import java.util.ArrayList;
import java.util.Iterator;

public class project1 {

    // ArrayList<String> a = new ArrayList<String>();

    public static void main(String[] args) {
        Scanner  sc = new Scanner(System.in); 
        String  word;
        String grab;

        int count = 0;
        ArrayList<String> a = new ArrayList<String>();
        // Iterator<String> it = a.iterator();

        System.out.println("Java project\n");

        while (sc.hasNext()) {      
            word = sc.next();  
            a.add(word); 
            if (word.equals("---")) {
            break;
            }
        }

        Iterator<String> it = a.iterator();

        while (it.hasNext()) {
            grab = it.next();

            if (grab.contains("a")) {
                System.out.println(it.next()); // Just a check to see
                count++;
            }
        }
        System.out.println("I counted abc = ");
        System.out.println(count);
        System.out.println("\nbye...");
    }
}
Run Code Online (Sandbox Code Playgroud)

And*_*s_D 9

在您的版本中,wordlist a将包含所有单词,但也包含重复项.你也可以

(a)检查每个新单词,如果它已经包含在列表中(List#contains是您应该调用的方法),或者,建议的解决方案

(b)替换ArrayList<String>TreeSet<String>.这将自动消除重复,并按字母顺序存储单词

编辑

如果要计算唯一单词,则执行与上面相同的操作,所需的结果是集合大小.因此,如果您输入序列"aabc ---",结果将为3,因为有三个唯一的单词(a,b和c).