Scanner是一个基于正则表达式的文本扫描器,它可以从文件、输入流、字符串中解析出基本类型值和字符串值。
Scanner 主要提供了两个方法来扫描输入。
①hasNextXxx():是否有下一个输入项,其中Xxx可以是Int、Long等代表基本数据类型的字符,如果只是判断是否包含下一个字符串,则直接使用hasNext()。
②nextXxx() :获取下个输入项。
在默认情况下,Scanner使用空白作为多个输入项之间的分隔符。
可以使用useDelimiter()方法来设置分隔符,该方法参数为一个正则表达式。
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);//读取键盘输入
scanner.useDelimiter("\n");//将回车符设置为分隔符
while (scanner.hasNext()) {
System.out.println(scanner.next());
}
}
}
Scanner 提供了两个简单的方法来逐行读取。
boolean hasNextLine() :返回输入源是否还有下一行。
String nextLine():返回输入源中下一行的字符串。
Scanner 读取文件输入:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args) throws FileNotFoundException {
File file = new File("C:\\new.txt");//使用file类 可能会出现即便没有到文件末尾hasNextLine()和hasNext()仍返回false的情况。用FIleReader类则不会。
//<span style="white-space:pre"> FileReader fileReader =new FileReader("C:\\new.txt");</span>
Scanner scanner = new Scanner(file);
System.out.println(scanner.hasNextLine());
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
}
}