【发布时间】:2020-01-21 21:40:36
【问题描述】:
我必须创建一个商店来购买商品。选择商品后,我会提示用户输入他们想要购买的商品的数量。
// 'input' is my Scanner object
int quantity;
quantity = input.nextInt();
如果用户输入一个非整数(即十进制,字符...),它会破坏程序。 有没有办法验证这个非整数输入?
谢谢
【问题讨论】:
-
我推荐阅读:Lesson: Exceptions
-
nextInt()在从数据流中读取数据时,浮点数、字节数等都很棒,但人类输入的用户输入却非常难以预测。您通常必须将所有内容都读取为 Strings,然后验证该字符串是否代表您想要的内容。 -
@StephenP 一般来说,我同意你的观点,但即使在数据流的情况下,我也建议采用字符串值,然后尝试将其转换为预期的类型。信任他人代码的伤痕很长很深。
-
在尝试调用
nextInt之前使用hasNextInt()。 -
@hooknc 同意了。事实上,我从未使用过
java.util.Scanner
标签: java validation