使用Scala中的另一个值替换列表中的空值

Fey*_*n27 2 null scala list nullpointerexception

我正在尝试使用空值替换Scala列表的null元素map.我目前有:

val arr = Seq("A:B|C", "C:B|C", null)
val arr2 = arr.map(_.replaceAll(null, "") )
Run Code Online (Sandbox Code Playgroud)

这给了我一个NullPointerExpection.做这个的最好方式是什么?

Zyo*_*oma 9

您正在尝试替换字符串中的空字符,而不是替换空字符串Seq.所以这是一个正确的方法:

val arr2 = arr.map(str => Option(str).getOrElse(""))
Run Code Online (Sandbox Code Playgroud)

Option这里将产生Some(<your string>),如果值不为空,None否则.getOrElse如果字符串不为null,则返回字符串,否则返回空字符串.