如何计算Java中txt文件中特定单词的出现次数?

如何计算Java中txt文件中特定单词的出现次数?,java,Java,我正在尝试为“list.txt”文档中的特定单词创建一个基本单词计数器。我现在使用的代码没有扫描“Customer”,即使Customer已经在word文档中出现过几次,我也尝试过创建一个值为“Customer”的字符串变量,但这也不起作用,有人能纠正我的错误吗 static int totalContracts() throws FileNotFoundException { Scanner scannerInput = new Scanner("list.txt"); in

我正在尝试为“list.txt”文档中的特定单词创建一个基本单词计数器。我现在使用的代码没有扫描“Customer”,即使Customer已经在word文档中出现过几次,我也尝试过创建一个值为“Customer”的字符串变量,但这也不起作用,有人能纠正我的错误吗

static int totalContracts() throws FileNotFoundException 
{
    Scanner scannerInput = new Scanner("list.txt");
    int count = 0;
    while (scannerInput.hasNext()) 
    { 
        String nextWord = scannerInput.next();
        System.out.println(nextWord);
        if (nextWord.equals("Customer")) 
        {
            count++;
        }
    }
    return count;
}

您没有打开该文件

Scanner scannerInput = new Scanner(new File("list.txt"));

如果您使用新扫描仪(“list.txt”)它只扫描文本“list.txt”。

您没有打开文件

Scanner scannerInput = new Scanner(new File("list.txt"));

如果使用
新扫描仪(“list.txt”)
它只扫描文本“list.txt”。

您将字符串类型的参数传递给扫描仪,在该扫描仪中,扫描仪将仅从指定的字符串生成值

为了使扫描仪从实际文件生成值,可以传入定义文件路径的文件对象

Scanner scannerInput = new Scanner(new File("list.txt"));
为此,您应该初始化一个新的文件对象,并将其路径传递给要扫描的文件。完成此操作后,可以将文件对象传递给扫描仪

File file_to_scan = new File("list.txt");
Scanner scanner_input = new Scanner(file_to_scan);

您将字符串类型的参数传递给扫描仪,在该扫描仪中,扫描仪将仅从该指定字符串生成值

为了使扫描仪从实际文件生成值,可以传入定义文件路径的文件对象

Scanner scannerInput = new Scanner(new File("list.txt"));
为此,您应该初始化一个新的文件对象,并将其路径传递给要扫描的文件。完成此操作后,可以将文件对象传递给扫描仪

File file_to_scan = new File("list.txt");
Scanner scanner_input = new Scanner(file_to_scan);

非常感谢你,马特,我是新手,所以我显然犯了一个愚蠢的错误,谢谢你!别担心!你会很快掌握窍门的!只是一个简单的问题,Matt,如果你不介意的话,在我的Java中,它一直输出整个txt文档,然后它下面的单词计数,我只想在我按run时输出计数,而不是整个txt文档,无论如何要改变它?如果我没弄错的话,似乎在每次迭代中都要打印下一个单词,这将打印整个文本文档。为了解决这个问题,您只需要删除该打印行。至于输出计数,您将使用与以前相同的打印方法,但您希望将值传递给打印,即“计数”。此外,您还应该在while循环后打印它,因此它只执行一次,而不是每次迭代。非常感谢Matt,我对此不熟悉,因此我显然犯了一个愚蠢的错误,谢谢你!别担心!你会很快掌握窍门的!只是一个简单的问题,Matt,如果你不介意的话,在我的Java中,它一直输出整个txt文档,然后它下面的单词计数,我只想在我按run时输出计数,而不是整个txt文档,无论如何要改变它?如果我没弄错的话,似乎在每次迭代中都要打印下一个单词,这将打印整个文本文档。为了解决这个问题,您只需要删除该打印行。至于输出计数,您将使用与以前相同的打印方法,但您希望将值传递给打印,该值将为“count”。此外,您还应在while循环后打印它,因此它只执行一次,而不是每次迭代。谢谢Zhh,这两个答案都很好,非常感谢!谢谢Zhh,两个答案都很好,谢谢!