Java Scanner类的用法(附带实例)
与 C语言不同,Java 从控制台中读取用户输入的值,使用的不是一行可以直接使用的代码,而是由一个叫 Scanner 的类来实现的。
Scanner 英文直译就是扫描仪,它的用途就和现实生活的扫描仪一样,可以把数字化信息流转为人类可识别的文字。System.out 表示向控制台中输出内容,System.in 表示从控制台中输入内容,让 Scanner 扫描 System.in 就可以获取用户输入的值了。
使用 Scanner 类首先要导入该类,其语法如下:
注意,nextLine() 方法扫描的内容是从第一个字符开始到换行符为止,而 next()、nextInt() 等方法扫描的内容是从第一个字符开始到这段完整内容结束。
使用 Scanner 类扫描控制台中的代码如下:
【实例】创建 ScannerDemo 类,首先在主方法中创建一个随机数,然后创建一个 while 循环不断获取用户输入的数字,让用户输入的数字与随机数比较,给出“大于”或“小于”的提示,直到用户输入的数字与随机数相等才结束循环。
Scanner 英文直译就是扫描仪,它的用途就和现实生活的扫描仪一样,可以把数字化信息流转为人类可识别的文字。System.out 表示向控制台中输出内容,System.in 表示从控制台中输入内容,让 Scanner 扫描 System.in 就可以获取用户输入的值了。
使用 Scanner 类首先要导入该类,其语法如下:
import java.util.Scanner; //导入Scanner类Scanner 类提供了如下表所示的几种常用的方法,通过这些方法可以获取控制台中输入的不同类型的值。
方法名 | 返回类型 | 功能说明 |
---|---|---|
next() | String | 查找并返回此扫描器获取的下一个完整标记 |
nextBoolean() | boolean | 扫描一个布尔值标记并返回 |
nextByte() | byte | 扫描一个值并返回 byte 类型 |
nextDouble() | double | 扫描一个值并返回 double 类型 |
nextFloat() | float | 扫描一个值并返回 float 类型 |
nextInt() | int | 扫描一个值并返回 int 类型 |
nextLine() | String | 扫描一个值并返回 String 类型 |
nextLong() | long | 扫描一个值并返回 long 类型 |
nextShort() | short | 扫描一个值并返回 short 类型 |
close() | void | 关闭此扫描器 |
注意,nextLine() 方法扫描的内容是从第一个字符开始到换行符为止,而 next()、nextInt() 等方法扫描的内容是从第一个字符开始到这段完整内容结束。
使用 Scanner 类扫描控制台中的代码如下:
Scanner sc = new Scanner(System in);System.in 表示控制台输入流,在创建 Scanner 对象时把 System.in 作为参数,这样创建出的扫描器对象扫描的目标就是用户在控制台中输入的内容,再通过表 1 中列出的方法将用户输入的内容转为 Java 的数据类型,就可以对数据进行加工、显示了。
【实例】创建 ScannerDemo 类,首先在主方法中创建一个随机数,然后创建一个 while 循环不断获取用户输入的数字,让用户输入的数字与随机数比较,给出“大于”或“小于”的提示,直到用户输入的数字与随机数相等才结束循环。
import java.util.Random; import java.util.Scanner; public class ScannerDemo { public static void main(String[] args) { Random r = new Random(); // 随机数对象 int num = r.nextInt(100); // 取值范围为 1~99 int input = -1; // 记录用户输入的值 Scanner sc = new Scanner(System.in); // 扫描器扫描用户在控制台中输入的内容 while (true) { System.out.println("猜一猜随机数是多少? "); input = sc.nextInt(); // 获取用户输入的一个整数 if (input > num) { // 如果大于随机数 System.out.print("你输入的数字大了!"); } else if (input < num) { // 如果小于随机数 System.out.print("你输入的数字小了!"); } else if (input == num) { // 如果等于随机数 break; // 结束循环 } else { System.out.println("您的输入有误!"); } } System.out.println("恭喜你答对了!"); sc.close(); // 关闭扫描器 } }运行结果为:
猜一猜随机数是多少? 40 你输入的数字小了! 猜一猜随机数是多少? 45 你输入的数字大了! 猜一猜随机数是多少? 42 恭喜你答对了!