好用的java工具类——用户交互Scanner
我们在java编程中难免需要用到键盘输入的交互变量
java提供好了一个Scanner类来获取用户的输入
Scanner讲解
Scanner属于外部类,我们在使用前需要导入类
代码语言:javascript复制 import java.util.Scanner;
在导入类之后,我们需要定义一个Scanner类型的变量来存储我们所输入的值,这个变量没有类型
输入下列代码之后,系统会自动收纳你的输入: scanner是具有缓存空间的;
当一次输入多个时,scanner自动收纳并在后面使用;
当一次输入并使用后,scanner会再次等待输入并使用;
代码语言:javascript复制Scanner name = new Scanner(System.in);
Scanner的使用通常需要赋值给其他变量
该被赋值变量需要设置类型,并要求与Scanner输入的类型一致
我们可以采用name.hasNext()或name.hasNextLine()来判断是否存在输入
(除hasNext,hasNextLine外,存在hasNextInt,hasNextDouble等判断输入类型的语句)
代码语言:javascript复制//如果Scanner有内容,执行下列语句
if(name.hasNext()){
//以next的形式接收s的内容
String str = s.next();
System.out.print("输入的内容为:" str);
}
代码语言:javascript复制//如果Scanner有内容,执行下列语句
if(s.hasNextLine()){
//以nextLine的形式接收s的内容
String str = s.nextLine();
System.out.println("你输入的数据为:" str);
}
代码语言:javascript复制//如果Scanner有内容且为整数,执行下列语句
if(s.hasNextInt()){
//以nextInt的形式接收s的内容
String str = s.nextInt();
System.out.println("你输入的数据为:" str);
}
这里介绍一下next()和nextLine()的区别:
next():
- 一定要读取有效字符后才能结束输入
- 对输入有效字符前的空白区域,next将其省略
- 将空白符作为结束符
- next不能完全读取含有空格的变量
nextLine():
- 以enter为结束符
- 可以获取空白部分
结束语
Scanner是我们java学习中很重要的一步,我们通过Scanner认识到了人机交互。