Java整数输入验证代码咨询:输入校验与范围校验实现
Java整数输入处理工具方法
我整理了这两个用于处理用户整数输入的Java工具方法,分别对应你提到的两种场景:
1. 持续校验并获取合法整数输入
这个方法会一直等待用户输入合法的整数,只要输入不是整数,就会输出你传入的错误提示,直到用户输入正确为止。
private static int readInputInt(String error) { Scanner s = new Scanner(System.in); while (!s.hasNextInt()) { System.out.println(error); s.next(); } int result = s.nextInt(); // s.close(); 这里注意:如果后续还要使用Scanner,不要随便关闭,否则会关闭System.in return result; }
小提示:代码里注释掉的s.close()要留心——如果你后续还要从控制台读取输入,千万别在这里关闭Scanner,因为它会把System.in也一起关掉,导致后续无法再获取输入。
2. 指定范围的整数输入(仅展示错误信息,不重复提示)
这个方法针对指定范围的整数输入需求,但和第一个方法不同的是,它只会在输入不合法(非整数或超出指定范围)时展示错误信息,不会循环重复请求用户输入。
private static int readInputInt(String error, int min, int max) { Scanner s = new Scanner(System.in); int result = 0; if (s.hasNextInt()) { result = s.nextInt(); if (result < min || result > max) { System.out.println(error); } } else { System.out.println(error); s.next(); // 清除非法输入缓存,避免后续读取异常 } // 同样注意:不要随意关闭Scanner return result; }
说明:我补全了你没写完的方法参数(添加了范围的min和max),如果你的实际需求有调整,可以根据情况修改判断逻辑。
内容的提问来源于stack exchange,提问作者Wont Provide
相关产品推荐
相关产品推荐

