如何修改Map的输出样式?

时间:2014-11-25 01:55:33

标签: java map pretty-print

我有这样的方法:

public static void main(String[] args) {
        Map<String, Long> var = Files.walk(Paths.get("text"), number)
                .filter(path -> !Files.isDirectory(path))
                    .map(Path::getFileName)
                    .map(Object::toString)
                    .filter(fileName -> fileName.contains("."))
                    .map(fileName -> fileName.substring(fileName.lastIndexOf(".") + 1))
                    .collect(Collectors.groupingBy(
                                    extension -> extension,
                                    Collectors.counting()
                            )
                    );
        System.out.println(var);
}

众所周知,输出将如下:

{text=1, text=2}

是否可以将输出更改为:

text = 1
text = 2

我希望有更多的自由,e。 G。删除括号和逗号,在数字后添加新行等。

2 个答案:

答案 0 :(得分:1)

您可以迭代地图的结果,然后将其打印出来:

for (Map.Entry<String, Long> entry : var.entrySet())
{
    System.out.println(entry.getKey() + " = " + entry.getValue());
}

然后,如果您想要更多控制,您可以修改线条的打印方式,因为您有原始键和值对象。

答案 1 :(得分:0)

如此简单的事情:

map.toString().replace(", ", "\n");