📅  最后修改于: 2023-12-03 15:31:30.950000             🧑  作者: Mango
在Java中,Scanner类可以帮助我们解析文本数据。它提供了一些方法来读取基本类型的输入数据,也可以使用正则表达式解析复杂的文本数据。Scanner类的使用非常简单,这使得它成为Java中最常用的解析器之一。
要使用Scanner类,我们需要首先创建Scanner对象。可以使用标准输入流(System.in)作为Scanner的构造函数参数来创建Scanner对象。例如:
Scanner scanner = new Scanner(System.in);
Scanner还可以接受File对象作为参数来读取文件中的数据。例如:
File file = new File("example.txt");
Scanner scanner = new Scanner(file);
Scanner类提供了一系列方法,用于读取不同类型的输入数据。下面是一些示例代码:
// 读取字符串
String input = scanner.next();
// 读取整数
int inputInt = scanner.nextInt();
// 读取浮点数
double inputDouble = scanner.nextDouble();
// 读取布尔值
boolean inputBoolean = scanner.nextBoolean();
除此之外,Scanner类还提供了许多其他方法,如nextLine(),nextByte(),nextShort(),nextLong()等,可根据不同的输入需求灵活使用。
Scanner类还支持使用正则表达式来解析文本数据。例如,假设我们有一个包含姓名和年龄的csv文件:
Alice,21
Bob,25
Charlie,30
我们可以使用以下代码解析文件:
File file = new File("example.csv");
Scanner scanner = new Scanner(file);
scanner.useDelimiter(",|\\n");
while (scanner.hasNext()) {
String name = scanner.next();
int age = scanner.nextInt();
System.out.println("Name: " + name + ", Age: " + age);
}
在这个例子中,我们使用逗号和换行符作为分隔符,通过useDelimiter()方法告诉Scanner如何解析文件。
Java IO-Scanner是一种强大的文本解析器,在Java应用程序中非常实用。Scanner类提供了一组易于使用的方法,可用于读取各种类型的输入数据。它还支持使用正则表达式解析复杂的文本数据,从而使我们的代码更灵活,更有表现力。