说我是否有扫描仪对象接收两个输入
Scanner console = new Scanner(System.in);
int number1 = console.nextInt();
int number2 = console.nextInt();
和我使用!= // some number
但是对于number1输入,我想通过非int类型进行验证。
我该怎么办?
例如number1 != //type int
答案 0 :(得分:2)
扫描仪实际上并不处理类型值。他们得到一大堆字节,将它们转换为字符串,然后将它们解析为你要求的任何字符。
检查"输入"您可以使用console.next()
获取下一个令牌,然后通过循环检查它是否为整数并检查每个字符是否为0-9
。
从技术上讲,您希望通过将其解析为> Integer.MAX_VALUE
来确保它不是< Integer.MIN_VALUE
或long
。
答案 1 :(得分:0)
您可以使用try / catch语句执行此操作:
int number1;
try {
number1 = console.nextInt();
} catch(InputMismatchException ime) {
...
}