Java编程讲义
上QQ阅读APP看书,第一时间看更新

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 理论测试与实践练习