Java小例子 - 读取控制台的用户输入 - 编程入门网
.readLine();
25. }
26.}
Java小例子 - 读取控制台的用户输入(3)时间:2011-06-12 csdn博客 YidingHe3、不允许用户输入为空 这就要用到 while 循环,当用户输入为空(没有输入就直接回车)的时候重新 要求输入。下面是将 readUserInput 方法改造后的例子: 1. /** 2. * 读取用户输入 3. * 4. * @param prompt 提示文字 5. * @return 用户输入 6. * @throws IOException 如果读取失败 7. */ 8. private static String readUserInput(String prompt) throws IOException { 9. // 先定义接受用户输入的变量 10. String result; 11. 12. do { 13. // 输出提示文字 14. System.out.print(prompt); 15. InputStreamReader is_reader = new InputStreamReader (System.in); 16. result = new BufferedReader(is_reader).readLine(); 17. } while (result.equals("")); // 当用户输入为空的 时候,反复提示要求用户输入 18. 19. return result; 20. } 为了更加灵活的判断,我们将 while 中的判断语句提取成一个单独的方法。 然后整个代码变成这样: 1.public class BasicInput { 2. 3. public static void main(String[] args) { 4. try { 5. // 先提示一段文字,然后等待用户输入 6. String str = readUserInput("请输入您的年龄: "); 7. System.out.println("您输入的是:" + str); 8. } catch (IOException e) { 9. e.printStackTrace(); 10. } 11. } 12. 13. /** 14. * 读取用户输入 15. * 16. * @param prompt 提示文字 17. * @return 用户输入 18. * @throws IOException 如果读取失败 19. */ 20. private static String readUserInput(String prompt) throws IOException { 21. // 先定义接受用户输入的变量 22. String result; 23. 24. do { 25. // 输出提示文字 26. System.out.print(prompt); 27. InputStreamReader is_reader = new InputStreamReader (System.in); 28. result = new BufferedReader(is_reader).readLine(); 29. } while (isInvalid(result)); // 当用户输入无效的时候,反复 提示要求用户输入 30. 31. return result; 32. } 33. 34. /** 35. * 检查用户输入的内容是否无效 36. * 37. * @param str 用户输入的内容 38. * @return 如果用户输入的内容无效,则返回 true 39. */ 40. private static boolean isInvalid(String str) { 41. return str.equals(""); 42. } 43.} 4、只允许用户输入数字 本例要求的是输入用户年龄。这是一个整数。为了避免得到非法的值,我们 需要进一步对内容进行判断。因为之前我们将内容判断这一步单独提取出来,所 以我们只要修改 isInvalid 方法就行了。判断一个字符串是不是数字,用正则 表达式是最简单的。下面是修改后的 isInvalid 方法: 1. private static boolean isInvalid(String str) { 2. return str.equals("") || !str.matches ("\\d+"); 3. } str.matches("\\d+") 用来判断字符串是不是全是数字。 到这里纵观整个代码,可以看得出来,Java 虽然在某些地方复杂,但只要稍 加整理,我们仍然可以得到逻辑结构合理的代码。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |