【问题标题】:How to check if the input is a valid number in Java [duplicate]如何检查输入是否是Java中的有效数字[重复]
【发布时间】:2013-12-10 17:23:34
【问题描述】:

我需要使用正则表达式吗?但是输入的数字是未知的。 或者Java中有一个函数可以做到这一点?

【问题讨论】:

  • 你说的有效号码是什么意思?
  • Ivaylo Strandjev,这正是我想要做的,但 parseInt 在失败时不会给出反馈。我想要的是一个信号,以便我可以提示用户重做输入。
  • 数字 0-9 的任意组合。

标签: java regex numbers


【解决方案1】:

例如,如果您想检查String 是否为有效整数,您可以使用Integer.parseInt。如果 String 没有以有效格式存储数字,您将收到 NumberFormatException,因此您可以使用 try/catch 块包围此代码。

【讨论】:

  • 异常通常不应用于控制流。如果您经常遇到这种情况并且只是根据数字的数字进行分支,那么您不应该使用异常。
  • @Cruncher 在这种情况下编写正则表达式来检查值是否为有效整数(即 32 位有符号值)非常复杂,代码的可读性和可维护性将因此受到很大影响。事实上,我记得几年前我就和你的观点一样进行过同样的争论,但最后我放弃了,可能没有更好的方法来处理这种情况。
  • 坦率地说,如果 java 想要推广“请求许可”而不是“请求宽恕”,那么它不应该成为标准库的一部分。
  • 这正是我试图做的,但 parseInt 在失败时不会给出反馈。我想要的是一个信号,以便我可以提示用户重做输入。
  • @JiajuShen 失败不反馈是什么意思?!?!?它跳转到 catch 块而不是继续在 try 块中。怎么没有反馈?
猜你喜欢
  • 2018-05-11
  • 2021-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-30
  • 2013-05-31
  • 2020-04-30
  • 1970-01-01
相关资源
最近更新 更多