Java 小例子:读取控制台的用户输入
来源:互联网 发布:西宁数据工程师招聘 编辑:程序博客网 时间:2024/05/17 01:13
原文链接
1、简单的获取用户输入
下面是一个基本的例子,包含解释:
import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.IOException;public class BasicInput { public static void main(String[] args) { try { // 在 Java 当中,用户输入要通过 InputStream (输入流)来获取。 // System.in 就是系统的输入流。缺省情况下这个输入流连接到控制台(命令行)。 // InputStreamReader 就是用来读取 InputStream 的类。 InputStreamReader is_reader = new InputStreamReader(System.in); // 通常使用 BufferedReader 来读取 InputStream 中的字符串内容。 // BufferedReader 可以一次读取一行。 String str = new BufferedReader(is_reader).readLine(); // 将读取的字符串输出到屏幕上。 System.out.println("您输入的是:" + str); } catch (IOException e) { e.printStackTrace(); } }}
2、在读取之前显示提示文本
有时候需要在读取前显示一段文字。下面是继续改造后的例子:
public class BasicInput { public static void main(String[] args) { try { // 先提示一段文字,然后等待用户输入 String str = readUserInput("请输入您的年龄:"); System.out.println("您输入的是:" + str); } catch (IOException e) { e.printStackTrace(); } } /** * 读取用户输入 * * @param prompt 提示文字 * @return 用户输入 * @throws IOException 如果读取失败 */ private static String readUserInput(String prompt) throws IOException { // 输出提示文字 System.out.print(prompt); InputStreamReader is_reader = new InputStreamReader(System.in); return new BufferedReader(is_reader).readLine(); }}
3、不允许用户输入为空
这就要用到 while 循环,当用户输入为空(没有输入就直接回车)的时候重新要求输入。下面是将 readUserInput 方法改造后的例子:
/** * 读取用户输入 * * @param prompt 提示文字 * @return 用户输入 * @throws IOException 如果读取失败 */ private static String readUserInput(String prompt) throws IOException { // 先定义接受用户输入的变量 String result; do { // 输出提示文字 System.out.print(prompt); InputStreamReader is_reader = new InputStreamReader(System.in); result = new BufferedReader(is_reader).readLine(); } while (result.equals("")); // 当用户输入为空的时候,反复提示要求用户输入 return result; }
为了更加灵活的判断,我们将 while 中的判断语句提取成一个单独的方法。然后整个代码变成这样:
public class BasicInput { public static void main(String[] args) { try { // 先提示一段文字,然后等待用户输入 String str = readUserInput("请输入您的年龄:"); System.out.println("您输入的是:" + str); } catch (IOException e) { e.printStackTrace(); } } /** * 读取用户输入 * * @param prompt 提示文字 * @return 用户输入 * @throws IOException 如果读取失败 */ private static String readUserInput(String prompt) throws IOException { // 先定义接受用户输入的变量 String result; do { // 输出提示文字 System.out.print(prompt); InputStreamReader is_reader = new InputStreamReader(System.in); result = new BufferedReader(is_reader).readLine(); } while (isInvalid(result)); // 当用户输入无效的时候,反复提示要求用户输入 return result; } /** * 检查用户输入的内容是否无效 * * @param str 用户输入的内容 * @return 如果用户输入的内容无效,则返回 true */ private static boolean isInvalid(String str) { return str.equals(""); }}
4、只允许用户输入数字
本例要求的是输入用户年龄。这是一个整数。为了避免得到非法的值,我们需要进一步对内容进行判断。因为之前我们将内容判断这一步单独提取出来,所以我们只要修改 isInvalid 方法就行了。判断一个字符串是不是数字,用正则表达式是最简单的。下面是修改后的 isInvalid 方法:
private static boolean isInvalid(String str) { return str.equals("") || !str.matches("//d+"); }
str.matches(“//d+”) 用来判断字符串是不是全是数字。
到这里纵观整个代码,可以看得出来,Java 虽然在某些地方复杂,但只要稍加整理,我们仍然可以得到逻辑结构合理的代码。
0 0
- Java 小例子:读取控制台的用户输入
- Java 小例子:读取控制台的用户输入
- Java 小例子:读取控制台的用户输入
- java小例子:读取控制台用户输入数据
- Java中读取控制台的用户输入
- Java控制台读取输入
- Java从控制台读取输入的数
- JAVA读取控制台的输入【转】
- JAVA读取控制台的输入【转】
- java IO 读取控制台输入
- Java中读取控制台输入
- 一个用户空间读取输入事件的例子
- 一个用户空间读取输入事件的例子
- 读取控制台输入的数据
- Java中从控制台读取输入的方法的总结
- 转载 java从控制台读取输入的方法
- java中从控制台读取输入的三种方法
- java读取控制台输入之掷骰子
- windows git 安装
- windows下用cmd命令netstat查看系统端口使用情况
- WmiPrvSE占用CPU过多的问题
- php后台图书管理系统-登录页面02
- 基础知识—函数-函数参数及返回值
- Java 小例子:读取控制台的用户输入
- applicationContext.xml约束
- Android--推送机制实现原理(三)-自己实现推送功能--建立长连接
- 【转】QMouseEvent鼠标事件简介
- 《算法导论》学习笔记第一章
- zoj 2343 Robbers 【贪心】
- (BST)二叉搜索树的操作(一)
- 自动分离FBX中SkinnedMeshRenderer并生成prefab
- 未进行的喜马拉雅之旅