java - 如何编写矩阵等程序的输出文件,Java

标签 java file matrix output

我正在尝试计算文件中的重复单词,并且我想将我的输出写入该文件

   public static void main(String a[]){
    MaxDuplicateWordCount mdc = new MaxDuplicateWordCount();
    Map<String, Integer> wordMap = mdc.getWordCount("C:/Users/Arnoldas/Desktop/Hamletas.txt");
    List<Entry<String, Integer>> list = mdc.sortByValue(wordMap);
    for(Map.Entry<String, Integer> entry:list){
        System.out.println(entry.getKey()+" ==== "+entry.getValue());
    }
}

输出现在看起来像:

hamletui ==== 4
šmėkla ==== 2
jo ==== 2
hamletas ==== 1
danijos ==== 1
pagrindiniam ==== 1
mirusio ==== 1
princui ==== 1
herojui, ==== 1
apsireiškusi ==== 1
karalystės ==== 1
paveda ==== 1
parketas ==== 1
herojui ==== 1
žudikui ==== 1
neseniai ==== 1
omletas ==== 1
atkeršyti ==== 1
tėvo ==== 1

我想将此输出放入文件中,它应该如下所示:

               | hamletui | šmėkla | jo  | hamletas | danijos | pagrindiniam |   ...
-------------------------------------------------------------------------------------
Hamletas.txt   |     4    |    2   |  2  |    0     |    0    |      0       |   ...
-------------------------------------------------------------------------------------
Other_file.txt |     0    |    0   |  6  |    3     |    4    |      1       |   ...

可以这样做吗?我也想从其他文件中获取输出。 有什么想法吗?

最佳答案

好的。如何使用表格将其编写为 HTML 文件的示例。 输入是一个以文件名作为键的映射和一个带有计数的单词映射。 首先查看 map 中提到了哪些单词。然后它编写 HTML。 第一个表行包含所有这些单词,之后为每个文件名创建一行,其中包含单词数。

public static void main(String a[]) {
    Map<String, Map<String, Integer>> wordMaps = new HashMap<>();

    wordMaps.put("Hamletas.txt", new HashMap<String, Integer>());
    wordMaps.get("Hamletas.txt").put("hamletui", 4);
    wordMaps.get("Hamletas.txt").put("šmėkla", 2);
    wordMaps.get("Hamletas.txt").put("jo", 2);

    wordMaps.put("Other_file.txt", new HashMap<String, Integer>());
    wordMaps.get("Other_file.txt").put("jo", 6);
    wordMaps.get("Other_file.txt").put("hamletas", 3);
    wordMaps.get("Other_file.txt").put("danijos", 4);
    wordMaps.get("Other_file.txt").put("pagrindiniam", 1);

    writeHtmlFile("example.html", wordMaps);
}

public static void writeHtmlFile(String filename, Map<String, Map<String, Integer>> wordMaps) {
    // get all words that are duplicates
    Set<String> words = new HashSet<>();
    for (Map<String, Integer> map : wordMaps.values()) {
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            if (entry.getValue() > 1) {
                words.add(entry.getKey());
            }
        }
    }

    try (PrintWriter out = new PrintWriter(new FileWriter(filename))) {
        out.println("<!DOCTYPE html><html>");
        out.println("<head><meta charset=\"utf-8\"/></head");
        out.println("<body>");
        out.println("<table border=\"1\">");

        // write Headline
        out.println("<tr>");
        out.println("<td>&#160;</td>"); // empty cell
        for (String word : words) {
            out.println("<td>" + word + "</td>"); // empty cell
        }
        out.println("</tr>");

        // write for all files
        for (Map.Entry<String, Map<String, Integer>> fileWordMap : wordMaps.entrySet()) {
            out.println("<tr>");
            out.println("<td>" + fileWordMap.getKey() + "</td>"); // filename
            Map<String, Integer> wordMap = fileWordMap.getValue();
            for (String word : words) {
                out.println("<td align=\"right\">" + (wordMap.containsKey(word) ? wordMap.get(word) : 0) + "</td>"); // number per
                                                                                                     // word or 0
            }
            out.println("</tr>");
        }

        out.println("</table>");
        out.println("</body>");
        out.println("</html>");
    } catch (IOException e) {

    }
}

关于java - 如何编写矩阵等程序的输出文件,Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50505871/

相关文章:

c++ - C++类中的矩阵

java - 将 v1 插入 @Path 注解 (java 1.6)

java - 如何从 ListView 启动一个 Activity

java.lang.NullPointerException : While displaying all my user files

c# - C#中的二进制补丁生成

matlab - matlab中如何解决索引超出矩阵维度的问题?

java - 如何连续使用两次比较器?

java - 如何在 Eclipse 中创建 jbpm6 web 应用程序?

python - 不支持的操作数类型错误

javascript - CSS3 Transform Matrix3D 动画故障,为什么?