Java Scanner类是Java5新特征,我们可以通过引用java.util.Scanner来获取用户的输入。
通过Scanner类创建Scanner对象的基本语法如下:
Scanner scanner = new Scanner(System.in);
下面演示一个最简单的数据输入,并通过Scanner类的next()和nextLine()两个方法来获取输入的字符串,一般在读取前需要使用hasNext和hasNextLine来判断是否还有输入的数据。
使用next()方法:
package com.hbf.demo;
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
// 从键盘接收数据
Scanner scanner = new Scanner(System.in);
// next方式接收字符串
System.out.println("next方式接收:");
// 判断是否还有输入
if (scanner.hasNext()) {
String str1 = scanner.next();
System.out.println("输入的数据为:" + str1);
}
scanner.close();
}
}
执行上面代码效果如下:
从代码执行结果中可以看到从con字符串并没有输出,接下来看一下nextLine()方法。
使用nextLine ()方法:
package com.hbf.demo;
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
// 从键盘接收数据
Scanner scanner = new Scanner(System.in);
// nextLine方式接收字符串
System.out.println("nextLine方式接收:");
// 判断是否还有输入
if (scanner.hasNextLine()) {
String str2 = scanner.nextLine();
System.out.println("输入的数据为:" + str2);
}
scanner.close();
}
}
执行上面代码运行效果如下:
这次使用nextLine()方法可以看到con字符串的输出。
next()和nextLine()的区别
next():
1、要读取到有效字符后才可以结束输入。
2、next() 方法会自动去掉有效字符之前遇到的空白部分
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
4、next() 方法不能得到带有空格的字符串。
nextLine():
- 以Enter键为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
- nextLine()方法是可以获得空白的。