gpt4 book ai didi

java - 如何验证字符串仅使用数字并输出一条消息,说明它只能是 Bluej 上的数字

转载 作者:行者123 更新时间:2023-11-30 03:09:21 25 4
gpt4 key购买 nike

我需要使下面的代码验证字符串仅使用数字。我做了一个 If 语句,但每次运行该程序时,它都会输出一条消息,指出该字符串不能是整数。

以下是变量:

private String personalIdNo;

private boolean isValidPersonalIdNo;

这是我遇到问题的代码,它不会工作,它总是输出“非整数”,即使我将其全部设为数字。

public void personalIdValidator()
{

if (personalIdNo.matches("[0-9]"))
{
//Return True
}
else{
isValidPersonalIdNo = false;
System.out.println("The input is not only int");
}

}

最佳答案

您的检查几乎是正确的,您只需将 personalIdNo.matches("[0-9]") 替换为 personalIdNo.matches("[0-9]+")personalIdNo.matches("[0-9]*"),具体取决于您是否希望空字符串也有效。

说明:

您当前的模式意味着“09 之间的一个字符”。字面意思是“一个字符”,例如即使使用您的代码,“1”或“4”也是有效输入。要允许多个字符,有两种选择:

  1. + 表示“一个或多个字符”
  2. * 表示“零个或多个字符”(即也允许空字符串)
  3. (从技术上讲,您也可以使用 {min,max} 指定具体数字,但我认为这不是您想要的)

请注意,此模式目前还可以防止负数。如果您还想允许负数,可以使用 personalIdNo.matches("-?[0-9]+"),其中 ? 表示“出现零次或一次”。

证明/代码示例:

public class NumberTest {

public static void main(String[] args) {
personalIdValidator("");
personalIdValidator("0");
personalIdValidator("1");
personalIdValidator("123");
personalIdValidator("-123");
personalIdValidator("--123");
personalIdValidator("abc");
personalIdValidator("1a2b3c");
personalIdValidator("‎٤‎٥‎٦‎٧‎٨‎");
}

public static void personalIdValidator(String personalIdNo) {
if (personalIdNo.matches("-?[0-9]+")) {
System.out.println("The input is only int");
} else {
System.out.println("The input is not only int");
}
}
}

// The input is not only int
// The input is only int
// The input is only int
// The input is only int
// The input is only int
// The input is not only int
// The input is not only int
// The input is not only int
// The input is not only int

关于java - 如何验证字符串仅使用数字并输出一条消息,说明它只能是 Bluej 上的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33948671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com