Java核心技术卷I基础知识3.7.1 读取输入
3.7.1 读取输入
、
前面已经看到,打印输出到“标准输出流”(即控制台窗口)是一件非常容易的事情,只要调用System.out.println即可。然而,读取“标准输入流”System.in就没有那么简单了。要想通过控制台进行输入,首先需要构造一个Scanner对象,并与“标准输入流”System.in关联。
(构造函数和new操作符将在第4章中详细地介绍。)
现在,就可以使用Scanner类的各种方法实现输入操作了。例如,nextLine方法将输入一行。
在这里,使用nextLine方法是因为在输入行中有可能包含空格。要想读取一个单词(以空白符作为分隔符),就调用
要想读取一个整数,就调用nextInt方法。
与此类似,要想读取下一个浮点数,就调用nextDouble方法。
在程序清单3-2的程序中,询问用户姓名和年龄,然后打印一条如下格式的消息:
最后,在程序的最开始添加上一行:
Scanner类定义在java.util包中。当使用的类不是定义在基本java.lang包中时,一定要使用import指示字将相应的包加载进来。有关包与import指示字的详细描述请参看第4章。
程序清单3-2 InputTest/InputTest.java
注释:因为输入是可见的,所以Scanner类不适用于从控制台读取密码。Java SE 6特别引入了Console类实现这个目的。要想读取一个密码,可以采用下列代码:
为了安全起见,返回的密码存放在一维字符数组中,而不是字符串中。在对密码进行处理之后,应该马上用一个填充值覆盖数组元素(数组处理将在3.10节介绍)。
采用Console对象处理输入不如采用Scanner方便。每次只能读取一行输入,而没有能够读取一个单词或一个数值的方法。
java.util.Scanner 5.0
Scanner (InputStream in)
用给定的输入流创建一个Scanner对象。
String nextLine( )
读取输入的下一行内容。
String next( )
读取输入的下一个单词(以空格作为分隔符)。
int nextInt( )
double nextDouble( )
读取并转换下一个表示整数或浮点数的字符序列。
boolean hasNext( )
检测输入中是否还有其他单词。
boolean hasNextInt( )
boolean hasNextDouble( )
检测是否还有表示整数或浮点数的下一个字符序列。
java.lang.System 1.0
static Console console( ) 6
如果有可能进行交互操作,就通过控制台窗口为交互的用户返回一个Console对象,否则返回null。对于任何一个通过控制台窗口启动的程序,都可使用Console对象。否则,其可用性将与所使用的系统有关。
java.io.Console 6
static char[] readPassword(String prompt, Object...args)
static String readLine(String prompt, Object...args)
显示字符串prompt并且读取用户输入,直到输入行结束。args参数可以用来提供输入格式。有关这部分内容将在下一节中介绍。
相关文章
- 【程序源代码】java 物业管理系统
- 【程序源代码】 JAVA博客管理系统
- 【程序源代码】Java版企业微信SCRM系统
- 开心档-Kotlin 基础语法
- 开心档-Kotlin 基本数据类型
- 高并发情况下使用动态多数据源dynamic-datasource 3.1.0并发问题复盘
- Java堆栈溢出漏洞分析
- Java 中如何限制方法的返回时间
- Java内存模型和线程安全
- 6-4 字符串加密(Java解法,两种网上的类型题)
- Tomcat具体的查找地址(建议收藏)
- 从Tomcat源码中寻找request路径进行注入
- 从JDK源码来看XXE的触发原理和对应的防御手段
- Java、.NET被评为安全性最低的语言?
- Mobile_xxx:transformClassesWithJarMergingForRelease‘
- 【软件开发规范一】《Java开发规范》
- 【云驻共创】 JAVA常用的开发工具有哪些?
- GraalVM编译器将会进入Java主线版本
- JAVA后台启动8080端口号被占用
- IDEA打开导入别人的java项目后不能运行的解决方法