gpt4 book ai didi

java - 使用 .matches 验证整数时出现问题

转载 作者:行者123 更新时间:2023-12-01 07:44:02 25 4
gpt4 key购买 nike

我正在尝试创建一个表达式验证方法来确保传递到函数中的帐号是否有效。如果是,则返回 true,如果为 false,则返回 false。

但是我遇到了错误:

Cannot Resolve method(java.lang.string) 

我已经查看了一些 stackoverflow 问题,但我似乎无法弄清楚我的代码中做错了什么。

accountNumber  = integer data type
this.AccountNumber = integer data type

代码:

String pattern2 = "^\d{1,10}$" ;
if (!accountNumber.matches(pattern2)) {
return false;
} else {
this.AccountNumber = accountNumber;
return true;
}

我从以下位置获取模式 https://www.freeformatter.com/java-regex-tester.html#ad-output

最佳答案

如果 accountNumber 是一个字符串,您的代码就可以工作。 java.lang.String有一个 matches 方法,可以根据正则表达式计算字符串。

但是你有一个整数可以使用。所以你有两个选择:

  1. 将整数转换为字符串,然后您的代码即可运行:
String converted = String.valueOf(accountNumber); 
String pattern2 = "^\\d{1,10}$" ;
if (!converted.matches(pattern2)) { // use the converted String to compare
return false;
} else {
this.AccountNumber = accountNumber;
return true;
}
  • 或者,由于您只是想计算数字,因此可以使用 Math。您声明您需要弄清楚您的整数是否有 5 到 9 位数字,因此它的值在 10,000 到 999,999,999 之间是有道理的(假设 9 位数字有效,否则删除 9 之一。)所以您可以做类似的事情:
  • if ( 10_000 <= accountNumber && accountNumber <= 999_999_999 ) {
    // this meets your condition
    } else {
    // the number of digits is wrong.
    }

    (当然,这是假设 accountNumber 中没有负值。调用 accountNumber = Math.abs(accountNumber) 可以解决这个问题。)

    关于java - 使用 .matches 验证整数时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58404495/

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