如何实现用户输入整数而非字符串时显示‘INVALID’提示?
解决方案
针对你需要判断用户输入是否为数字并输出"INVALID"的需求,这里提供两种实用的实现方式:
方法一:正则表达式匹配
通过正则表达式检查输入是否为纯数字(或包含数字,可按需调整):
System.out.println("\nEnter Your Name:"); String name = tc.next(); // 检查输入是否为纯数字 if (name.matches("\\d+")) { System.out.println("INVALID"); } else { // 处理合法名字的逻辑 System.out.println("Hello, " + name); }
如果需要禁止名字中包含任何数字(比如"abc123"也判定无效),可以把正则改为.*\\d.*:
if (name.matches(".*\\d.*")) { System.out.println("INVALID"); }
方法二:使用Scanner的类型判断方法
利用Scanner的hasNextInt()方法直接判断输入是否为整数类型:
System.out.println("\nEnter Your Name:"); if (tc.hasNextInt()) { // 输入是整数,输出INVALID并消费该输入 tc.next(); System.out.println("INVALID"); } else { // 输入非整数,获取合法名字 String name = tc.next(); System.out.println("Hello, " + name); }
注意:调用hasNextInt()后如果判定为整数,必须调用tc.next()将该输入读取掉,否则后续的输入读取会重复获取这个数字。
内容的提问来源于stack exchange,提问作者Davensio Vlogs
相关产品推荐
相关产品推荐

