java提供的工具类java.util.Scanner,与C语言中的头文件stdio.h类似
不同的是,Scanner只用于接受用户的输入信息
基本语法
-
导入Scanner
import java.util.Scanner;
-
创建一个扫描器对象,传入参数System.in,用于接收键盘输入
System.in与System.out相对应
Scanner scanner = new Scanner(System.in);
-
next()方法
Scanner类中的Next()方法用于接收输入内容,按输入内容不同有 next(), nextLine(), nextInt(), nextFloat()......
以nextInt()为例
int i=0;
i=scanner.nextInt();
-
hasNext()方法
hasNext( ) 用于判断键盘是否输入内容,按输入内容不同有hasNext(), hasNextLine(), hasNextInt(),hasNextFloat().......
以hasNext()为例
if(scanner.hasNext()){
}
-
关闭scanner对象
创建的scanner对象,如果不关闭会一直占用资源,因此,要将其关闭;
语法如下
scanner.close();
完整代码举例
//导入Scanner包
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘数据
//传入参数System.in
Scanner scanner = new Scanner(System.in);
//用hasNext方法判断是否输入
//注意scanner中”s“小写
System.out.println("以next()方法输入:");
if(scanner.hasNext()){
String str=scanner.next();
System.out.println("输出的内容:"+str);
}
//凡是IO流如果不关闭会一直占用资源
scanner.close();
}
}
next()与nextLine()的区分
next()
- 对于输入之前输入的空格,next()方法会把它自动去掉;
- 只有输入有效字符之后才可以结束输入
- 只有输入有效字符后的空格才被作为结束符
- next()方法不能得到带有空格的字符串
nextLine()
- 以enter回车作为结束符。与next Line()方法不同,不输入任何内容,直接按回车键也会结束
- 可以获得空白。与nextLine()方法不同,所有空白(包括输入有效内容之前的空白)也会被保留