【问题标题】:Search a word in a text file and return its frequency在文本文件中搜索一个单词并返回它的频率
【发布时间】:2011-07-03 09:20:32
【问题描述】:

如何在包含单词文本的文本文件中搜索特定单词并返回其频率或出现次数?

【问题讨论】:

  • 那么到目前为止你尝试过什么?
  • 这是一个相当普通的家庭作业。我敢肯定,如果您四处搜索,您会找到很多解决方案。
  • 我尝试过使用树形图,但它会返回文本中的整个单词并将其显示为单词数组和单个单词的频率。现在我想程序提示用户输入所需的单词并仅返回单词和特定单词的频率。

标签: java


【解决方案1】:

使用扫描仪:

String text = "Question : how to search for a particular word in a " +
        "text file containing texts of words and return its " +
        "frequency or occurrences ?";

String word = "a";

int totalCount = 0;
int wordCount = 0;
Scanner s = new Scanner(text);
while (s.hasNext()) {
    totalCount++;
    if (s.next().equals(word)) wordCount++;
}

System.out.println("Word count:  " + wordCount);
System.out.println("Total count: " + totalCount);
System.out.printf("Frequency:   %.2f", (double) wordCount / totalCount);

输出:

Word count:  2
Total count: 24
Frequency:   0.08

【讨论】:

  • 嗨,谢谢你的例子。我正在使用你的概念并在我的代码中实现。谢谢。我现在试图弄清楚如何使字符串来处理文本文件,而不仅仅是几个单词字符串..
  • 您可以传递一个文件,而不是将text 传递给扫描仪构造函数。 See the api docs.
  • 嗨,谢谢。我想通了。非常感谢您的建议。我很感激。 :)
  • 您好,很抱歉打扰您。有些单词在文本中只出现一次,但程序将其返回为 0 频率。可以指教吗?
  • 哦,对不起,我的意思是字数是0。即使我在文本中看到自己只有一个字,但程序在字数中返回0。
【解决方案2】:
【解决方案3】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    • 1970-01-01
    相关资源
    最近更新 更多