Joh*_*ith 1 java int input java.util.scanner
这里的基本问题..我将首先要求你不要回复任何代码,因为这可能只会让我更加困惑(编程菜单).我正在寻找关于如何解决这个问题的明确解释.
我有一个扫描仪,可以读取用户的输入.提示用户输入1到150之间的int值(仅限整数).我获得如下值:
Scanner scan = new Scanner(System.in);
int input = scan.nextInt();
Run Code Online (Sandbox Code Playgroud)
继续我的程序,一切正常.
不幸的是,代码并不完全是防弹的,因为任何非整数的输入都可以破坏它(字母,符号等).
如何使代码更加健壮,哪里可以验证只输入了一个int?
这些是我希望的结果:
让我们说输入是:
23 -> valid
fx -> display an error message, ask the user for input again (a while loop would do..)
7w -> error, again
3.7 -> error
$$ -> error
etc
Run Code Online (Sandbox Code Playgroud)
ign*_*nis 12
true
如果下一个标记是数字,则Scanner.hasNextInt()返回,false
否则返回.
在这个例子中,我调用hasNextInt().如果它返回true
,我会经过一段时间并设置输入; 如果它返回false
,那么我丢弃输入(scanner.next();
)并重复.
Scanner scan = new Scanner(System.in);
while(!scan.hasNextInt()) {
scan.next();
}
int input = scan.nextInt();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
39312 次 |
最近记录: |