Java Scanner是一个提供文本扫描功能的类,我们可以用它来解析基本类型和字符串。

一、Scanner的创建和基本使用

我们可以通过各种方式创建Scanner对象,如System.in,File,String等。以下是一些示例:

 Scanner scanner = new Scanner(System.in); Scanner scanner = new Scanner(new File("fileName.txt")); Scanner scanner = new Scanner("Hello World!"); 

使用Scanner对象,我们可以获取输入的基本类型数据和字符串,如nextInt(),nextLine()等。

 int i = scanner.nextInt(); String s = scanner.nextLine(); 

二、Scanner的特性和注意事项

Scanner的强大之处在于其灵活的模式匹配,我们可以通过useDelimiter设置分隔符。

 Scanner scanner = new Scanner("Hello World!"); scanner.useDelimiter("[ ,.!?]+"); while (scanner.hasNext()) { System.out.println(scanner.next()); } 

在使用Scanner时,需要注意的是,当我们同时使用nextLine和其他nextXxx方法时,可能会出现输入错误,因为nextLine方法会读取换行符。

 Scanner scanner = new Scanner(System.in); int i = scanner.nextInt(); String s = scanner.nextLine(); // This will get an empty string because nextInt() does not consume newline character 

三、Scanner的关闭

为了防止资源泄露,我们应该在使用完Scanner后关闭它。但如果Scanner是基于System.in创建的,那么我们不应该关闭它,因为这会关闭标准输入。

 Scanner scanner = new Scanner(new File("fileName.txt")); while (scanner.hasNext()) { System.out.println(scanner.next()); } scanner.close();