正则表达式用于查找int或double

20 浏览
0 Comments

正则表达式用于查找int或double

我正在尝试检查身高是否有效。要有效,身高必须为1或1.4或1.0或1.等等,不能是其他任何字符,如字符串、数字或小数点以外的字符。小数点不能位于字符串的开头,并且只能有一个小数点。我一直在尝试的正则表达式是:\n

 "/^[0-9]+([\\,\\.][0-9]+)?$/"

\n但它不起作用,仍然接受字符串。任何帮助都将是很好的,谢谢!\n

 public static boolean HeightValid(String height)
 {
        boolean isHeightValid = true;
        if(!height.matches("/^[0-9]+([\\,\\.][0-9]+)?$/") || height.length() < 1 || height.length() > 9)
           {
           isHeightValid = false;
           }
       else
           {
             double doubleHeight = Double.parseDouble(height);
             DecimalFormat df = new DecimalFormat("#.00");
             String decHeight = df.format(doubleHeight);
             heightField.setText(decHeight);
           }
  return isHeightValid;
  }

\n如果您需要更多信息,请添加评论,谢谢。

0
0 Comments

正则表达式是一种用于匹配和查找文本模式的工具。在这种情况下,问题是如何找到整数或浮点数的模式。用户提供了一个正则表达式^[0-9]+(.|,)?[0-9]?$,用于匹配这种模式。

然而,其他用户(neminem和Johnsyweb)指出,使用正则表达式并不是解决这个问题的唯一方法。他们认为可以使用其他方法来完成任务。具体来说,他们没有提供进一步的解决方法。

此外,用户还提供了一个有用的网站https://www.debuggex.com/,该网站可以在使用正则表达式之前进行可视化测试。

总结起来,本文讨论了一个问题,即如何使用正则表达式查找整数或浮点数的模式。用户提供了一个正则表达式,并提到可以使用其他方法来解决这个问题。此外,还提供了一个有用的网站,用于可视化测试正则表达式。

0
0 Comments

问题出现的原因:

问题的原因是提问者想要找到一个可以匹配整数或双精度浮点数的正则表达式。他给出了一个可能的解决方案,并解释了之前其他答案中的一些问题。

解决方法:

提问者给出的解决方法是使用正则表达式"^[0-9]+([,.][0-9]?)?$"来匹配整数或双精度浮点数。他解释说,这个正则表达式不需要在方括号内转义字符,除了"]"之外。他还指出了Java中没有正则表达式定界符的事实,并建议查看他的答案以获取更多信息。

以下是整理后的文章:

这应该可以解决问题:

"^[0-9]+([,.][0-9]?)?$"

编辑:我去掉了斜杠。我发现其他所有在这里发布的模式都有缺陷。您在方括号内不需要转义字符 - 除了]之外。问题没有限制小数点前的数字数量。但它只允许小数点后有一个数字。

- Java中没有正则表达式定界符?

是的。请查看我的答案。

文章完整内容如上。

0
0 Comments

正则表达式是一种用于匹配和查找文本模式的工具。在这个问题中,我们需要使用正则表达式来查找整数或浮点数。

然而,正则表达式可能存在一些缺陷,比如接受0,00,0这样的输入,但却不接受1,000.00这样的输入。编写一个良好的正则表达式很困难。

对于这样一个简单的情况,使用Double.parseDouble()和try-catch块可能更适合。需要注意的是,Double.parseDouble()也不接受"1,000.00"这样的输入。这是提到使用解析函数而不是正则表达式的答案中存在的一个缺陷。它不允许接受可能的格式,而这些格式内置的解析函数不支持(比如带有逗号的输入)。

因此,为了解决这个问题,我们可以考虑使用以下代码:

try {
    double num = Double.parseDouble(input);
    // 处理整数或浮点数
} catch (NumberFormatException e) {
    // 处理解析错误
}

使用Double.parseDouble()将输入字符串解析为浮点数或整数,并使用try-catch块捕获解析错误。这样可以更好地处理不同的输入格式。

通过使用这种方法,我们可以避免正则表达式的一些缺陷,并且能够更灵活地处理输入。

0