java-通过xml中的hashmap计数单词

时间:2018-09-04 16:10:42

标签: java hashmap

我有一个程序,它显示xml中的一些值,例如显示前十个标签 来自xml

<row Id="6" TagName="frames" Count="513" ExcerptPostId="5390" WikiPostId="5389" />

我有这个

Map<String, Integer> tagMap = new HashMap<String, Integer>();
Dataset<String> tagData = spark.read().format("com.databricks.spark.xml").textFile(tagsFile).cache();
List<String> tags = tagData.collectAsList();
    for (String t : tags.subList(2, tags.size() - 1)) {

        if (t.contains("ExcerptPostId")) {
            tagMap.put(t.substring(t.indexOf("TagName") + 9, t.indexOf("Count") - 2),
                    Integer.parseInt(t.substring(t.indexOf("Count") + 7, t.indexOf("ExcerptPostId") - 2)));
        } else {
            tagMap.put(t.substring(t.indexOf("TagName") + 9, t.indexOf("Count") - 2),
                    Integer.parseInt(t.substring(t.indexOf("Count") + 7, t.indexOf("/>") - 2)));
        }

    }
tagMap.entrySet().stream().sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())).limit(10)
            .forEach(System.out::println);

为每个记录显示文件中的两个值,非常简单。 现在,我想像这样从xml正文中计算出最受欢迎的单词

  <row Id="172" Body="this text;" " />

但是我不知道如何从中提取单个单词并计数。

0 个答案:

没有答案