Scanner对象
作用
我们可以通过Scanner类来获取用户的输入
所属包
java.util.Scanner java 工具类下
基本语法
Scannner s=new Scanner(System.in)
常用方法
- next()、nextLine()获取输入的字符串
- hasNext()、hasNextLine()一般在获取之前都要用这两个方法判断是否还有输入的数据
代码示例
//创建一个扫描对象,用于接收键盘数据
Scanner scanner=new Scanner(System.in);
System.out.println("使用next方式接收:");
//判断用户有没有输入字符串
if(scanner.hasNext()){
//使用next方式接收
String str=scanner.next();//程序等待用户输入完毕
System.out.println("输入的内容为:"+str);
}
//凡是属于I/O流的类如果不关闭就会一直占用资源,要养成良好习惯用完就关掉
scanner.close();
输出结果
使用next方式接收:
hello world
输入的内容为:hello
可以发现只输出了hello,没有输出world,换成nextline试一下
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextLine方法接收");
//判断是否还有输入
if(scanner.hasNextLine()){
String str = scanner.nextLine();
System.out.println("输入的内容为:"+str);
}
scanner.close();
输出结果
使用nextLine方法接收
hello world
输入的内容为:hello world
可以发现正确了,接下来我们来看一下next()和nextline()的区别
next()和nextline()的区别
-
next()
- 一定要读取到有效字符才可以结束输入。
- 对输入有效字符之前遇到的空格,next()方法会自动过滤掉。
- 只有输入有效字符后才将后面输入的空白作为分割符或者结束符
- next() 不能得到带有空格的字符串
-
nextLine()
-
以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符串。
-
可以获得空白。
-