
2.7.2 Scanner获取键盘数据
在前面的学习中,代码中的变量都是在程序中为其赋值的,这时候有些读者可能会比较好奇,难道说变量只能由程序员为其赋值么?当然不是,程序是给用户用的,当然能实现互动,比如我们就可以通过控制键盘来获取数据,从而为程序中的变量进行赋值。
在控制台输入数据,可以使用Scanner类的对象来实现或由I/O来实现(这种方式在后面第12章讲解)。Scanner类在java.util包中,需要在程序前面编写import java.util.Scanner来加载该类,这样在程序中就可以直接使用Scanner类。在使用该类前需要使用new关键字来创建一个该类的对象,语法格式如下:
Scanner 对象名 = new Scanner(System.in); // 输入参数
Scanner类包含几个常用方法,如下所示。
next():获取用户输入的字符串,不包含空格、Tab键和换行字符。
nextLine():获取输入的整行字符,可以包含空格、Tab键和换行字符。
nextInt():获得一个整数,其他类似方法包括nextByte()、nextDouble()等,可获得对应类型的数据。
close():关闭Scanner对象。
接下来,通过案例来演示Scanner类的使用,如例2-12所示。
【例2-12】 Demo0212.java

程序的运行结果如下:
请输入您的姓名: 张三 请输入您的学校: AAA软件教育 张三在AAA软件教育学习Java
例2-12中,第1行代码使用import导入了java.util.Scanner类。因为Scanner类是引用数据类型,第5行代码使用new关键字创建了一个Scanner类的对象input。第13行代码,使用close()方法关闭了input对象。
知识点拨:next()方法一定要读取到空格、Tab键和换行字符前的数据,并且不会处理换行字符。如输入“AAA 软件教育”,则next()方法只会读取到“AAA”,剩下的字符串“软件教育”会继续保留在内存,但是使用nextLine()可以直接读取完字符串“AAA软件教育”。
内容扩展
扫描右侧二维码获取如下内容
2.8 本章小结
2.9 理论测试与实践练习
