欢迎访问宙启技术站
智能推送

了解Java中的Scanner函数

发布时间:2023-05-28 04:44:57

Scanner是Java中一个方便的操作输入流的类,可以通过Scanner读取从控制台输入的内容或者文件中的内容。Scanner可以根据指定的格式,以各种数据类型(例如int,double,字符串等)读取输入。Scanner还提供了一些其他的方法,可以进行基本的表达式扫描和文本分析。

Scanner类可以用来读取控制台输入、文件以及其他可读数据源中的数据。它的构造函数支持任何实现了Readable接口的对象作为参数,因此它可以方便地读取从各种数据源提供的数据。下面是在Java中使用Scanner类基本操作的详细说明。

1. 创建Scanner对象

可以通过以下代码创建Scanner对象:

Scanner scanner = new Scanner(System.in);

在这里,Scanner使用System.in作为读取输入的数据源,它表示从控制台读取输入的数据。

可以使用文件作为数据源创建Scanner对象:

Scanner scanner = new Scanner(new File("test.txt"));

这里的数据源是文件(test.txt),Scanner将读取该文件中的文本并将其作为输入提供给程序。

2. 读取不同类型的输入数据

下面是一些Scanner读取不同类型数据的示例。请注意,Scanner类提供了各种类型的next()方法,如nextLine()、nextInt()、nextDouble()等,可以根据输入数据的类型来选择使用适当的方法。

(1)读取字符串:

Scanner scanner = new Scanner(System.in);

System.out.println("Enter your name:");

String name = scanner.nextLine(); // 读取一行输入并存储为字符串

System.out.println("Your name is " + name);

(2)读取整数:

Scanner scanner = new Scanner(System.in);

System.out.println("Enter your age:");

int age = scanner.nextInt(); // 读取整数

System.out.println("Your age is " + age);

(3)读取浮点数:

Scanner scanner = new Scanner(System.in);

System.out.println("Enter the value of PI:");

double pi = scanner.nextDouble(); // 读取浮点数

System.out.println("The value of PI is " + pi);

3. 表达式扫描和文本分析

Scanner除了能够读取基本数据类型,还有一些方法可用于文本分析和表达式扫描。Scanner提供了hasNext()、hasNextInt()、hasNextDouble()等方法,用于检查Scanner输入中是否存在下一个元素。此外,Scanner还提供了findInLine()、skip()和useDelimiter()等方法来执行更高级的文本分析操作。

(1)查找输入内容中的所有整数

Scanner scanner = new Scanner(System.in);

System.out.println("Enter some integers:");

while (scanner.hasNextInt()) {

    int num = scanner.nextInt();

    System.out.println("Found integer: " + num);

}

这个例子使用Scanner的hasNextInt()方法来检查输入的内容是否包含一个或多个整数值。

(2)使用正则表达式查询输入内容中的单词

Scanner scanner = new Scanner(System.in);

scanner.useDelimiter("\\W");

System.out.println("Enter some text:");

while (scanner.hasNext()) {

    String word = scanner.next();

    System.out.println(word);

}

这个例子使用Scanner的useDelimiter()方法,将非单词类字符(例如空格或逗号)作为分隔符,以从输入中获取单词。使用hasNext()和next()方法循环读取输入数据,并使用正则表达式来获取输入数据中的单词。

(3)跳过一些输入内容

Scanner scanner = new Scanner(System.in);

System.out.println("Enter your age:");

int age = scanner.nextInt();

scanner.skip(" "); // 跳过一个空格

System.out.println("Enter your name:");

String name = scanner.nextLine();

System.out.println("Your name is " + name + ", age is " + age);

这个例子使用Scanner的skip()方法来跳过输入中的一个空格。这对于混合输入数据类型的情况非常有用。在这个例子中,先读取一个整数,然后跳过一个空格,并读取一行输入作为字符串。

总结

Scanner是Java中一个非常有用的类,可以轻松地读取各种输入数据类型。Scanner类不仅适用于读取控制台输入,还常用于读取文件和其他可读数据源中的数据。尽管它主要用于读取基本数据类型,但其高级文本分析功能使其具有更广泛的应用场景。Scanner的使用使代码简洁而灵活,避免了繁琐的输入操作。