假设我想给扫描器添加一种方法,称为 extPresitiveInt ()
,该方法类似于 nextInt ()
,但发现负整数时,则会推出自订的 InputNegativeExption
。
我为什么要这样做呢?当有"时, https://stackoverflow.com/ questions/3059333/validing-input-using-java- util-scanner' > > 的解决方案使用 hasNextInt ()
?虽然简洁一点,但从例外的目的来看,它看起来非常细小,更符合逻辑。 例如 :
<强度 > 扩展扫描仪方法: 强度>
Scanner cli = new Scanner(System.in);
boolean inputValid = false;
do
{
System.out.println("Enter your age:");
try
{
int age = cli.nextPositiveInt();
}
catch(InputNegativeException e)
{
System.out.println("You cannot specify a negative age.");
inputValid = false;
}
catch(InputMismatchException e)
{
System.out.println("Your input must be numeric.");
inputValid = false;
}
} while(!inputValid);
Scanner cli = new Scanner(System.in);
do
{
System.out.println("Please enter a positive number!");
while(!sc.hasNextInt())
{
System.out.println("That s not a number!");
sc.next(); // this is important!
}
int number = sc.nextInt();
} while(number <= 0);
所以假设你还没有发出一个回应, 告诉我为什么这是一个非常糟糕的想法( 如果是的话, 请做; 我想在Scanner的验证中可能会有一些反对意见) 我对如何进行这个问题感到困惑。 我猜我需要复制 nextInt ()
的正文, 在 nextPostiveInt ()
() ) 中, 并做一些小改动? 您能否在任何地方找到 nextInt ()
的正文?
我道歉,我没有代码 显示任何努力,我已经做了, 但我不知道从哪里开始。