当前位置: 首页 > 知识库问答 >
问题:

如何在Java中获得文本文件的单词列表和单词数?

赫连瀚
2023-03-14

我是新来的,我想要得到一个文本文件的单词列表和单词数。这是我尝试过的代码:

public class Main {

    public static void main(String args[]) throws Exception {
        // write your code here
        String line;


        FileReader fr = new FileReader("Wordlist (1).txt");
        BufferedReader br = new BufferedReader(fr);

        int i;
        while ((i = br.read()) != -1) {
            System.out.print((char) i);
        }

        int count = 0;

        if ((line = br.readLine()) == null) {
            System.out.println("Error");
        } else {
            //Splits each line into words
            String words[] = line.split("\\s+");
            //Counts each word
            count = count + words.length;

        }
        //Gets each line till end of file is reached
        /*while ((line = br.readLine()) != null) {
            //Splits each line into words
            String words[] = line.split("\\s+");
            //Counts each word
            count = count + words.length;

        }*/

        System.out.println("Number of words in the file: " + count);
        br.close();
        fr.close();
    }
}

输出:century Cepheus CEQ陶瓷Cerberus谷类小脑错误文件字数:0

共有1个答案

曾歌者
2023-03-14

删除这些代码:

int i;
while ((i = br.read()) != -1) {
    System.out.print((char) i);
}

因为在br.read()完成后,指针将指向文件内容的末尾。因此,如果您随后按如下方式调用br.readline(),它通常会返回-1,这意味着您已经完成了对整个文件的读取。

所以您必须删除上面的代码,然后使用下面的代码:

int count = 0;
while ((line = br.readLine()) != null) {
    //Splits each line into words
    String words[] = line.split("\\s+");
    //Counts each word
    count = count + words.length;
}
 类似资料:
  • 问题内容: 我试图加快我的项目以计算单词频率的速度。我有360多个文本文件,我需要获取单词的总数以及另一个单词列表中每个单词出现的次数。我知道如何使用单个文本文件执行此操作。 要获得“通货膨胀”,“工作”,“产出”个体的频率过于繁琐。我可以将这些单词放入列表中并同时查找列表中所有单词的出现频率吗?基本上,这与Python。 示例:代替此: 我想这样做(我知道这不是真实的代码,这是我在寻求帮助的内容

  • 我想读一个文本文件,打印出已知单词前面的单词,比如Java中的xxx。我使用Scanner类用java编写了这段代码。但是这段代码只打印了“xxx”前面的一半单词,而“xxx”前面的一些单词则丢失了。我想知道是什么问题,你能解决这个代码吗。 测试文件包含类似的内容

  • 问题内容: 我搜索了这个问题,但找不到任何有用的答案。我想获取文档中每个单词的总数,例如,我的索引中有一些推文,并且有一条推文中写着这样的内容:“这里太无聊了,我想去我的家,甜蜜的家”。查询应返回如下响应: 有可能这样做吗? 问题答案: 您正在寻找利用分析仪的。这样做时,您可以定义所需的任何分析器,即阻止分析器将单词转换为根/普通形式。查看文档以获取更多详细信息。 在: 出:

  • 问题内容: 就像标题所说的那样,我试图编写一个程序,该程序可以从文本文件中读取单个单词并将其存储到变量中。我知道如何使用或来读取单曲,但是对于我试图这样做的行不通。一旦输入了单词,我就尝试使用.equals将它们与程序中的其他String变量进行比较,因此最好将其导入为Strings。我也可以将文本文件中的整行作为字符串输入,在这种情况下,我只需要在文件的每一行中输入一个单词即可。如何从文本文件输

  • 问题内容: 假设您有一个像这样的文本文件:http : //www.gutenberg.org/files/17921/17921-8.txt 有没有人有一个好的算法或开放源代码从文本文件中提取单词?如何获得所有单词,同时避免使用特殊字符,并保留诸如“ it’s”之类的内容… 我在用Java工作。谢谢 问题答案: 这听起来像是正则表达式的正确工作。如果您不知道如何开始,以下是一些Java代码,可以

  • 我正在尝试编写我的第一个Elasticsearch分析插件,我从github中找到了一个可扩展的标准Analyzer插件项目:Elasticsearch分析standardext,在该项目中它提供了以下代码: 这里是链接 我想知道如何获得这些单词边界的字符类。 我问有问题的作者:如何获得单词边界“字符类”?#2,但是作者似乎不会回答我的问题。 我尝试阅读Unicode文本分段文档:https://