Scanner类说明
使用Scanner类可以很方面地获取用户的键盘输入,Scanner是一个基于正则表达式的文本扫描器,它可以从文件、输入流、字符串中解析出基本类型值和字符串值。Scanner类提供了多个构造器,不同的构造器可接受文件、输入流、字符串作为数据源,用于从文件、输入流、字符串中解析数据。
Scanner类的常用方法
- hasNextXXX():是否还有下一个输入项,其中XXX可以是Int、Long等代表基本数据类型的字符串。如果需要判断是否包含下一个字符串,则可以省略XXX。
- nextXXX():获取下一个输入项。XXX的含义与前一个方法中XXX相同。
代码示例1
import java.util.Scanner;
public class ScannerKeyBoardTest {
/**
* @param args
*/
public static void main(String[] args) {
// System.in代表标准输入,就是键盘输入
Scanner sc = new Scanner(System.in);
// 增加下面一行将只把回车作为分隔符
// sc.useDelimiter("\n");
// 判断是否还有下一个输入项
while(sc.hasNext())
{
// 输出输入项
System.out.println("键盘输入的内容是:"
+ sc.next());
}
}
}
运行结果1
hello
键盘输入的内容是:hello
welcome
键盘输入的内容是:welcome
go
键盘输入的内容是:go
运行结果2
当去掉sc.useDelimiter("\n");的注释,运行结果如下:
line 1
键盘输入的内容是:line 1
line 2
键盘输入的内容是:line 2
line 3
键盘输入的内容是:line 3
代码示例2
import java.util.Scanner;
public class ScannerLongTest {
/**
* @param args
*/
public static void main(String[] args) {
// System.in代表标准输入,就是键盘输入
Scanner sc = new Scanner(System.in);
// 判断是否还有下一个long型整数
while(sc.hasNextLong())
{
// 输出输入项
System.out.println("键盘输入的内容是:"
+ sc.nextLong());
}
}
}
运行结果
12
键盘输入的内容是:12
34
键盘输入的内容是:34
56
键盘输入的内容是:56
代码说明
Scanner可以获取任何基本类型的输入项目。
代码示例3
import java.io.File;
import java.util.Scanner;
public class ScannerFileTest {
public static void main(String[] args) throws Exception {
// 将一个File对象作为Scanner的构造器参数,Scanner读取文件内容
Scanner sc = new Scanner(new File("ScannerFileTest.java"));
System.out.println("ScannerFileTest.java文件内容如下:");
// 判断是否还有下一行
while(sc.hasNextLine())
{
// 输出文件中的下一行
System.out.println(sc.nextLine());
}
}
}
运行结果
F:\java\workspace\first\bin>java ScannerFileTest
ScannerFileTest.java文件内容如下:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ScannerFileTest {
public static void main(String[] args) throws FileNotFoundException {
// 将一个File对象作为Scanner的构造器参数,Scanner读取文件内容
Scanner sc = new Scanner(new File("ScannerFileTest.java"));
System.out.println("ScannerFileTest.java文件内容如下:");
// 判断是否还有下一行
while(sc.hasNextLine())
{
// 输出文件中的下一行
System.out.println(sc.nextLine());
}
}
}
代码说明
此代码创建Scanner对象时传入一个File对象作为参数,这表明该程序会读取ScannerFileTest.java文件中的内容。此代码使用了hasNextLine和nextline两个方法读取文件内容。