我正试图从下面的代码打印这些密钥。当我使用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()));
}
}
} }
2条答案
按热度按时间yebdmbv41#
以上引自
String.join
方法。第一个参数是“分隔符”。自entry.getKey()
只返回一个字符串,在其中添加分隔符“逗号”是没有用的。这是预期的行为。可能是
StringJoiner
在这里会有更多的选择。yvt65v4c2#
这个
String.join
方法分别对每个单词执行。您需要首先收集所有单词(例如在ArrayList
)然后执行Strin.join(", ", <your list object>)
之后。