正在尝试使用string.join打印,但不起作用

xytpbqjk  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(285)

我正试图从下面的代码打印这些密钥。当我使用string.join时,它不会用逗号和空格分隔它们,而是作为一个单词。不知道我做错了什么。

String[] words = scanner.nextLine().toLowerCase().split(" ");

LinkedHashMap<String, Integer> count = new LinkedHashMap<>();

for (int i = 0; i < words.length; i++) {

    Integer occurrences = count.get(words[i]);
    if (occurrences == null) {
        occurrences = 0;
    }
    count.put(words[i], occurrences + 1);
}
for (Map.Entry<String, Integer> entry : count.entrySet()) {
    if (entry.getValue() % 2 != 0) {
        System.out.print(String.join(", ", entry.getKey()));
    }
}

} }

yebdmbv4

yebdmbv41#


* String message = String.join("-", "Java", "is", "cool");
* // message returned is: "Java-is-cool"

以上引自 String.join 方法。第一个参数是“分隔符”。自 entry.getKey() 只返回一个字符串,在其中添加分隔符“逗号”是没有用的。这是预期的行为。
可能是 StringJoiner 在这里会有更多的选择。

yvt65v4c

yvt65v4c2#

这个 String.join 方法分别对每个单词执行。您需要首先收集所有单词(例如在 ArrayList )然后执行 Strin.join(", ", <your list object>) 之后。

相关问题