假设我有一个
val s: String = "14ABC5"
并拥有HashMap
val b: HashMap<String,String> = hashMapOf("A" to "10", "B" to "11", "C" to "12", "D" to "13", "E" to "14", "F" to "15" )
如何在保持秩序(“1”,“4”,“10”,“11”,“12”,“5”)的同时更改所有出现的A,B,C 10,11,12 ?
到目前为止,我有这个
val result: List<String> = s.toUpperCase().toCharArray().map{ it.toString() }.map{ it -> b.getValue(it)}
如果String
中存在HashMap
的所有字符,但我的String
也可能包含不存在的键,则
有效。
答案 0 :(得分:3)
您可以使用getOrDefault(...)
或Kotlinesque b[it] ?: it
。
顺便说一句,如果您使用隐式lambda参数名称(it
),则可以删除it ->
。
答案 1 :(得分:1)
默认情况下,您可以将String
用作可迭代,并按如下方式简化代码:
s.map { it.toString() }
.map { b[it] ?: it }