Java 有没有一种方法可以通过说“验证”来验证数据;变量!=int";
这就是我希望我的代码所说的,以避免在用户选择Java 有没有一种方法可以通过说“验证”来验证数据;变量!=int";,java,if-statement,int,conditional-statements,validation,Java,If Statement,Int,Conditional Statements,Validation,这就是我希望我的代码所说的,以避免在用户选择“Tea”而不是使用相应的整数时出现编译错误 if(appSelection < 1 || appSelection > appetizersArray.length || appSelection != int) if(appSelection开胃菜数组.length | | appSelection!=int) 前两个条件显然是捕获超出范围的数据,但我正在寻找一种方法来指定输入必须是int 如果唯一的选择是试试catch,那就这么说
“Tea”
而不是使用相应的整数时出现编译错误
if(appSelection < 1 || appSelection > appetizersArray.length || appSelection != int)
if(appSelection<1 | | appSelection>开胃菜数组.length | | appSelection!=int)
前两个条件显然是捕获超出范围的数据,但我正在寻找一种方法来指定输入必须是int
如果唯一的选择是
试试catch
,那就这么说吧,但我希望有一个更优雅的解决方案。您可以使用正则表达式。小写字母\\d
与数字匹配,加上加号表示连续。所以
String regex = "\\d+";
String[] arr = { "Tea", "123" };
for (String str : arr) {
if (str.matches(regex)) {
System.out.printf("%s is all digits%n", str);
} else {
System.out.printf("%s is NOT all digits%n", str);
}
}
输出为
Tea is NOT all digits
123 is all digits
这是命令行输入吗?如果是这样,您可以使用Scanner类的nextInt方法()。如果它来自web表单,则您的库应该将该值转换为整数,在这种情况下,您已经知道它是整数,或者它是字符串,您可以调用integer.parseInt(string)。此处的文档:假设数据以字符串形式出现,那么可以使用try/catch,或者使用一些函数来检查提供的数据是否为有效整数,如下所示:
boolean isValidInt(String s) {
try {
Integer.parseInt(s);
} catch (Exception e) {
return false;
}
return true;
}
然后你可以说:
if(!isValidInt(appSelection)) someError();
希望有帮助 假设这是一个与Java相关的问题,
int
是一个原语。您所引用的操作有一个运算符:instanceof
。不幸的是,它不适用于基本数据类型。为了使用它,您必须使用包装类(即Integer
)。因此:
不幸的是,自动装箱不适用于此。您可以执行以下操作:
String value = ???; // ??? represents some unknown string value.
稍后,您可以尝试将该字符串值转换为整数值:
try
{
Integer x = new Integer(str);
}
catch (NumberFormatException e)
{
// The exception will be thrown if the string does not represent a numeric value. For example: a34bc
}
如果变量x的实例化成功,它将保存一个数值。由于Java取消装箱机制,您将能够将“x”传递给某个采用原语int
的方法。例如:
try
{
Integer x = new Integer(str);
int result = addThisValue(x);
}
catch (NumberFormatException e) {// Do something }
...
public int addThisValue(int value) {...}
您将能够安全地将变量x
传递给该方法
try
{
Integer x = new Integer(str);
int result = addThisValue(x);
}
catch (NumberFormatException e) {// Do something }
...
public int addThisValue(int value) {...}