[英]Changing the values in a scala map
I have a Scala Map
like this: 我有一个这样的Scala Map
:
Map("a"->"Null", "b"->"12", "c"->"23", "d"->"", "e"->"apple", "f"->"pear", "g"->"banana", "h"->null)
Now, I want to replace the values of keys that contains ( a
, d
, h
) with 0.0, which should result in a map like this: 现在,我想用0.0替换包含( a
, d
, h
)的键的值,这将导致如下所示的映射:
Map("a"->"0.0", "b"->"12", "c"->"23", "d"->"0.0", "e"->"apple", "f"->"pear", "g"->"banana", "h"->"0.0")
Is there any simple way to do it? 有什么简单的方法吗?
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
}
( Edited the above to use Dima's more succinct syntax. ) ( 编辑以上内容以使用Dima更简洁的语法。 )
If your intent is to replace null or null-like values with "0.0", you could do this: 如果您打算将null或类似null的值替换为“ 0.0”,则可以执行以下操作:
val replaced = data.map {
case (k, v) if (isNull(v)) => (k, "0.0")
case x => x
}
I'll leave the implementation of isNull
to you. 我将把isNull
的实现留给您。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.