Java: 在 TreeMap 中替换

Java: Replace in TreeMap

我有一个树状图:

TreeMap<String, Integer> map = new TreeMap<String, Integer>();

它计算输入的单词,例如如果我插入:

"Hi hello hi"

它打印:

{Hi=2, Hello=1}

我想用 "\n" 替换 ",",但我不理解 Java 库中的方法。这可能吗?是否可以将整个 TreeMap 转换为字符串?

将地图打印到 System.out 时使用地图的 toString 函数将地图打印到控制台。

您可以像这样用换行符替换逗号:

String stringRepresentation = map.toString().replace(", ", "\n");

然而,当您在地图中的 key 包含逗号时,这可能会带来问题。

或者您可以创建一个函数来生成所需的字符串格式:

public String mapToMyString(Map<String, Integer> map) {
    StringBuilder builder = new StringBuilder("{");
    for (Map.Entry<String, Integer> entry : map.entrySet()) {
        builder.append(entry.getKey()).append('=').append(entry.getValue()).append('\n');
    }
    builder.append('}');
    return builder.toString();
}

String stringRepresentation = mapToMyString(map);

Guava 有很多有用的方法。看看Joiner.MapJoiner

Joiner.MapJoiner joiner = Joiner.on('\n').withKeyValueSeparator("=");
System.out.println(joiner.join(map));