Kotlin:使用分隔符打印地图中的所有元素
Kotlin: Printing all elements from a map with separators
我是 Kotlin 新手。我很好奇从带有分隔符的地图打印所有 key:value 对的正确方法是什么。
这是我的解决方案,但不知何故感觉不对:
val m = mapOf("Juice" to 4.5, "Wine" to 8.0, "Soda" to 2.2)
val itr = m.iterator()
if(itr.hasNext()) {
var drink = itr.next()
print("${drink.key}: ${drink.value}")
}
while (itr.hasNext()) {
var drink = itr.next()
print(", ${drink.key}: ${drink.value}")
}
输出:
Juice: 4.5, Wine: 8.0, Soda: 2.2
这个怎么样?
val m = mapOf("Juice" to 4.5, "Wine" to 8.0, "Soda" to 2.2)
println(m.map { "${it.key}: ${it.value}" }.joinToString(", "))
这会打印:
Juice: 4.5, Wine: 8.0, Soda: 2.2
joinToString()
允许您定义分隔符并修改 Iterable 的每个元素以创建单个字符串。分隔符默认为逗号和 space,因此在这种情况下您无需指定。您可以在地图的 entries
上调用它。
m.entries.joinToString { "${it.key}: ${it.value}" }
.run(::println)
我是 Kotlin 新手。我很好奇从带有分隔符的地图打印所有 key:value 对的正确方法是什么。 这是我的解决方案,但不知何故感觉不对:
val m = mapOf("Juice" to 4.5, "Wine" to 8.0, "Soda" to 2.2)
val itr = m.iterator()
if(itr.hasNext()) {
var drink = itr.next()
print("${drink.key}: ${drink.value}")
}
while (itr.hasNext()) {
var drink = itr.next()
print(", ${drink.key}: ${drink.value}")
}
输出:
Juice: 4.5, Wine: 8.0, Soda: 2.2
这个怎么样?
val m = mapOf("Juice" to 4.5, "Wine" to 8.0, "Soda" to 2.2)
println(m.map { "${it.key}: ${it.value}" }.joinToString(", "))
这会打印:
Juice: 4.5, Wine: 8.0, Soda: 2.2
joinToString()
允许您定义分隔符并修改 Iterable 的每个元素以创建单个字符串。分隔符默认为逗号和 space,因此在这种情况下您无需指定。您可以在地图的 entries
上调用它。
m.entries.joinToString { "${it.key}: ${it.value}" }
.run(::println)