java - Java 中统计文本文件中字符串的出现次数

标签 java hashmap bufferedreader

我正在尝试计算文本文件中一周中出现的天数。截至目前,我的代码计算出现的总数,但我需要它来计算每个关键字单独出现的次数。输出需要如下所示

Monday = 1
Tuesday = 2
Wednesday = 0

等等

这是我到目前为止的代码

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Map;
import java.util.HashMap;

public class DayCounter
{

public static void main(String args[]) throws IOException 
{

    String[] theKeywords = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};

    // put each keyword in the map with value 0 
    Map<String, Integer> DayCount = new HashMap<String, Integer>();
    for (String str : theKeywords)
    {
        DayCount.put(str, 0);
    }

    try (BufferedReader br = new BufferedReader(new FileReader("C:\\Eclipse\\test.txt")))
    {

        String sCurrentLine;

        // read lines until reaching the end of the file
        while ((sCurrentLine = br.readLine()) != null) 
        {


            if (sCurrentLine.length() != 0) 
            {

                // extract the words from the current line in the file
                if (DayCount.containsKey(sCurrentLine))
                {
                    DayCount.put(sCurrentLine, DayCount.get(sCurrentLine) + 1);
                }
            }
        }

    } 
    catch (FileNotFoundException exception)
    {

        exception.printStackTrace();
    } 
    catch (IOException exception) 
    {

        exception.printStackTrace();
    } 


    int count = 0;
    for (Integer i : DayCount.values()) 
    {
        count += i;
    }

    System.out.println("\n\nCount = " + count);
}
}

最佳答案

尝试这个而不是仅仅打印总和:

for(String day : theKeywords) {
 System.out.println(day + " = " + DayCount.get(day));
}

关于java - Java 中统计文本文件中字符串的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15232268/

相关文章:

java - 从项目目录中的文件夹中读取文件

java - 从文本文件中读取一行而不是整个文件(使用 bufferedreader)

java - 有没有适用于 Java 的在线 IDE?

java - 如何从 Java 转换 csv 文件中的指数

Java 十六进制基础双字面量

java - HashMap 实现,允许覆盖 hash 和 equals 方法

java - java中强制静态的抽象方法

C++ 映射和指针

java - Java HashMap 与 ArrayList 相比的内存开销

java - ProcessBuilder BufferedReader read() 阻塞