相关疑难解决方法(0)

如何在Scala中检查字符串是否为十进制数

我仍然是Scala的新手,我几乎每天都在发现新的有趣的做事方式,但它们并不总是明智的,有时候已经存在于语言中作为一种结构而我只是不喜欢知道他们.所以,有了这个序言,我正在检查一个给定的字符串是否完全由数字组成,所以我在做:

def isAllDigits(x: String) = x.map(Character.isDigit(_)).reduce(_&&_)
Run Code Online (Sandbox Code Playgroud)

这是明智的还是不必要的愚蠢?有更好的方法吗?调用x.toInt并捕获异常更好,还是不那么惯用?是否存在性能优势/劣势?

scala

52
推荐指数
6
解决办法
5万
查看次数

java中的字符串到字符串 - 可能是坏数据,需要避免异常

看到Java没有可空类型,也没有TryParse(),如何在不抛出异常的情况下处理输入验证?

通常的方式:

String userdata = /*value from gui*/
int val;
try
{
   val = Integer.parseInt(userdata);
}
catch (NumberFormatException nfe)
{
   // bad data - set to sentinel
   val = Integer.MIN_VALUE;
}
Run Code Online (Sandbox Code Playgroud)

我可以使用正则表达式来检查它是否可解析,但这似乎也是很多开销.

处理这种情况的最佳做法是什么?

编辑:理由:关于异常处理,有很多关于SO的讨论,一般的态度是异常应仅用于意外情况.但是,我认为糟糕的用户输入是预期的,并不罕见.是的,这确实是一个学术观点.

进一步编辑:

一些答案证明了SO究竟出了什么问题.你忽略了被问到的问题,并回答了与之无关的另一个问题.问题不是要求层之间的过渡.如果数字是不可解析的,那么问题不在于询问返回什么.如你所知,val = Integer.MIN_VALUE; 对于完全无上下文的代码片段来自应用程序的应用程序来说,它是完全正确的选项.

java parsing numbers

37
推荐指数
5
解决办法
9万
查看次数

标签 统计

java ×1

numbers ×1

parsing ×1

scala ×1