Java 在Scala中将字符串转换为整数的最简洁的方法?
在Java中,我可以使用以下两条语句将字符串转换为整数,这两条语句能够处理异常: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
// 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
不是选项。