快速业务通道

Java小例子 - 读取控制台的用户输入 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
.readLine(); 25. } 26.}

Java小例子 - 读取控制台的用户输入(3)

时间:2011-06-12 csdn博客 YidingHe

3、不允许用户输入为空

这就要用到 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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号