当前位置: 首页 > 知识库问答 >
问题:

使用验证整数时出现问题。比赛

劳鹏云
2023-03-14

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

但是我正在经历一个错误:

Cannot Resolve method(java.lang.string) 

我已经看了一些堆栈溢出问题,但我似乎无法弄清楚我在代码中做错了什么。

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

共有3个答案

闾丘昊然
2023-03-14

accountNumber=整数数据类型?

整数类型没有匹配方法

accountNumber应为字符串类型。

如:

布尔b="abc"。匹配("^\d{1,10}$");

裴俊智
2023-03-14

您需要将您的int变量转换为String来执行正则表达式匹配。用java.util.Objects.toString()helper方法包装您的if条件。

if (!Objects.toString(accountNumber).matches(pattern2))

如果帐户号码已经是一个整数,您可以直接在帐户号码变量上调用toString()方法。

您应该阅读一下Java自动装箱/取消装箱:https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html

闾丘成礼
2023-03-14

如果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;
}
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创建一个简单的程序,它将三个正整数作为命令行参数,如果其中任何一个大于或等于其他两个整数的和,则输出TRUE,否则输出FALSE。 希望他们中的一些人能给我一个答案,或者给我一个正确的方向,这样我就能把事情做好。

  • 我使用的是Ruby on Rails V3.2.2。我想解决在使用和RoR方法时与外键验证相关的问题。也就是说,我有以下模型类: 但是,如果我注释掉模型类中的,它会按预期工作,但是不验证外键似乎不是一个正确的方法。 如果我注释掉模型类中的,我仍然会得到错误:

  • 我有一个XML文档,需要在其中验证签名。SignedInfo元素具有指定算法“http://www.w3.org/2001/10/xml-exc-c14n#”的元素CanonicalizationMethod,还具有一个子元素InclusiveNamespaces,该子元素具有填充的PrefixList属性,如下所示: 我使用以下代码创建我的C14Transform对象: 其中来自属性。 我遇到的

  • 问题内容: 嗨,我正在使用Eclipse Rcp,我需要验证仅接受我使用代码的整数值的文本框 它可以验证,但是与此有关的问题是我无法使用Backspace键删除数字。还请告诉我验证小数的想法。提前致谢 问题答案: 使用侦听器时,您可以清空文本字段,而不是使其不可编辑。您可以执行以下操作,该代码段基于您的代码。 如果您使用,则更好。我不确定您是否在SWT中拥有它,即使您不尝试寻找类似的东西。

  • 我试图在我的项目中使用Hibernate验证器,但它不起作用。在以下行: 我得到以下例外情况: 我发现这个问题似乎与我的问题很相似。他将他的解决方案描述为 我想我的问题也是一样的。在http://hibernate.org/validator/documentation/getting-start/it上说: 这会传递地引入对Bean验证API的依赖关系(javax.Validation:vali

  • 我有一个数十万对象的列表。当每一个运行时,它都会根据给定的值执行一个可能很长的计算。正因为如此,我希望异步运行每个任务(最好是通过使用某种执行器),并在30秒后检索每次计算的结果,取消那些没有及时完成的结果。(所得值在其他地方使用。) 到目前为止,我就是这样实现它的: ArrayList存储每个要执行的,然后将其发送到ExecutorService以运行所有任务。我遇到的问题是,任务似乎是同步启动