我有一个像这样的Scala Map
:
Map("a"->"Null", "b"->"12", "c"->"23", "d"->"", "e"->"apple", "f"->"pear", "g"->"banana", "h"->null)
现在,我想将包含(a
,d
,h
)的键的值替换为0.0,这应该会产生如下地图:
Map("a"->"0.0", "b"->"12", "c"->"23", "d"->"0.0", "e"->"apple", "f"->"pear", "g"->"banana", "h"->"0.0")
有没有简单的方法呢?
答案 0 :(得分:2)
val data = Map("a"->"Null", "b"->"12", "c"->"23", "d"->"", "e"->"apple", "f"->"pear", "g"->"banana", "h"->null)
val replaced = data.map {
case (k@("a"|"d"|"h"), v) => (k, "0.0")
case x => x
}
(编辑以上内容使用Dima更简洁的语法。)
如果你的意图是用“0.0”替换null或类似null的值,你可以这样做:
val replaced = data.map {
case (k, v) if (isNull(v)) => (k, "0.0")
case x => x
}
我会将isNull
的实施方式留给您。