小编典典

检查是否可以在没有try-catch的情况下将字符串解析为Long?

java

Long.parseLong("string")如果无法将字符串解析为long则抛出错误。有没有比使用更快的方法来验证字符串try-catch?谢谢


阅读 221

收藏
2020-10-07

共1个答案

小编典典

您可以创建相当复杂的正则表达式,但这不值得。在这里使用异常是绝对正常的。

这是自然的例外情况:您假设字符串中有一个整数,但实际上还有其他东西。应该抛出异常并正确处理。

如果查看内部parseLong代码,将会看到有许多不同的验证和操作。如果要在解析之前执行所有操作,则会降低性能(如果我们正在谈论解析数百万个数字,因为否则无关紧要)。因此,
如果您确实确实需要 通过避免异常来提高性能的 话,您
唯一可以做的就是:将parseLong实现复制到您自己的函数中并返回NaN,而不是在所有对应的情况下都抛出异常。

2020-10-07