String 在Scala中将带null的字符串数组转换为Int数组

String 在Scala中将带null的字符串数组转换为Int数组,string,scala,String,Scala,给定数组(“1”、“2”、null、“3”),将其转换为整数数组,将null替换为0 我知道我们可以使用成功/失败模式,但如何通过简单的案例陈述做到这一点 Array("1","2",null,"3").map({ case null => 0 case _ => (_:String).toInt}) 返回数组(,.0,)您可以将每个非Int字符串转换为零,而无需特定于null的测试 Array("1&q

给定数组(“1”、“2”、null、“3”),将其转换为整数数组,将null替换为0

我知道我们可以使用成功/失败模式,但如何通过简单的案例陈述做到这一点

Array("1","2",null,"3").map({
  case null => 0
  case _ => (_:String).toInt})

返回
数组(,.0,)
您可以将每个非
Int
字符串转换为零,而无需特定于
null的测试

Array("1","2",null,"3","w")
  .map(s => util.Try(s.toInt).getOrElse(0))
//res0: Array[Int] = Array(1, 2, 0, 3, 0)

如果只需要空值和数字,可以使用
选项

Array("1","2",null,"3").map(Option(_).fold {0} {_.toInt})
请注意,这将引发数组中不是
int
null
的任何元素


代码在处运行。

您的第二个case返回一个函数try withcase str:String=>str.toInt但是,不建议这样检查nulls,如果字符串不是数字,您可能还需要处理错误,因此我将使用numbers.map(x=>Option(x).flatMap(\uu.tointo选项).getOrElse(默认值=0))
-此外,建议使用列表或任何其他真实集合,而不是普通阵列kliao,请阅读