String 在Scala中将带null的字符串数组转换为Int数组
给定数组(“1”、“2”、null、“3”),将其转换为整数数组,将null替换为0 我知道我们可以使用成功/失败模式,但如何通过简单的案例陈述做到这一点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
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,请阅读