每当我尝试在互联网上查找以查看从用户字段接受的int值是否具有某些字符(如A-z或任何特殊字符)时,所有站点都会假定输入采用String的形式。 功能
boolean numberValidation(int number){
if number has characters mentioned above, return false
else return true
}
答案 0 :(得分:2)
在这种情况下,编译器会抱怨传递的参数。
如果参数是String并且您想要检测String是否是有效整数,则可以解析它控制异常。以下代码是一个建议:
boolean numberValidation(String number){
try{
Integer.parseInt(number);
return true;
}catch(NumberFormatException e){
return false;
}
}
此致
答案 1 :(得分:1)
尝试解析它,如果发生异常,则返回false,否则返回true
boolean numberValidation(String supposedNumber) {
boolean flag = false;
int x;
try {
x = Integer.parseInt(supposedNumber);
flag = true;
} catch(NumberFormatException ex) {
flag = false;
}
return flag;
}
答案 2 :(得分:1)
如果您正在寻找带有任何数字> 9
的十六进制数字,您可以这样做:
// hex representation of -889275714
int i = 0xcafebabe;
// just 1
int j = 1;
// represents both as hexadecimal String representations
String is = Integer.toHexString(i);
String ij = Integer.toHexString(j);
// pattern to check for letters
Pattern alpha = Pattern.compile("[a-z]", Pattern.CASE_INSENSITIVE);
System.out.printf("\"%s\" contains characters, \"%s\" does not.%n", is, ij);
<强>输出强>
"cafebabe" contains characters, "1" does not.
注意强>
对于代表号码的String
,如其他答案所示,请使用Integer.parseInt
并抓住NumberFormatException
。
答案 3 :(得分:0)
这就是我认为你想要的东西:
public boolean isNumber(String value) {
return Pattern.compile("\\d+").matcher(value).matches();
}