Java 在Scala中将字符串转换为整数的最简洁的方法?

Java 在Scala中将字符串转换为整数的最简洁的方法?,java,scala,number-formatting,Java,Scala,Number Formatting,在Java中,我可以使用以下两条语句将字符串转换为整数,这两条语句能够处理异常: // we have some string s = "abc" int num = 0; try{ num = Integer.parseInt(s); } catch (NumberFormatException ex) {} 然而,我在Scala中找到的方法总是使用如下的try-catch/match-getOrElse方法,它由几行代码组成,看起来有点冗长 // First we have to defi

在Java中,我可以使用以下两条语句将字符串转换为整数,这两条语句能够处理异常:

// we have some string s = "abc"
int num = 0;
try{ num = Integer.parseInt(s); } catch (NumberFormatException ex) {}
然而,我在Scala中找到的方法总是使用如下的
try-catch/match-getOrElse
方法,它由几行代码组成,看起来有点冗长

// First we have to define a method called "toInt" somewhere else
def toInt(s: String): Option[Int] = {
  try{
    Some(s.toInt)
  } catch {
    case e: NumberFormatException => None
  }
}

// Then I can do the real conversion
val num = toInt(s).getOrElse(0)
这是在Scala中将字符串转换为整数(能够处理异常)的唯一方法还是有更简洁的方法?

请考虑

util.Try(s.toInt).getOrElse(0)
这将提供一个整数值,同时捕获可能的异常。因此,

def toInt(s: String): Int = util.Try(s.toInt).getOrElse(0)
或者如果首选
选项

def toInt(s: String): Option[Int] = util.Try(s.toInt).toOption

如果转换失败,
None
将被发送。

?您可以放弃调用
toOption
@RégisJean-Gilles谢谢:)更新抱歉,我不清楚。对于执行
getOrElse
(并返回
Int
)的版本,可以删除它,因为
Try
本身就有此方法。但是您不能删除返回
选项[Int]
的版本,因为
Try
不是
选项。