📜  Java.util.Scanner类(1)

📅  最后修改于: 2023-12-03 14:42:21.595000             🧑  作者: Mango

Java.util.Scanner类

Java.util.Scanner类是Java语言中的一个标准类,它主要用来将简单的文本解析为基本类型或字符串。Scanner类通常用于从键盘、文件或网络输入流中获取输入。

常用方法

以下是Scanner类比较常用的方法:

构造方法

Scanner类有多个构造方法,可以指定不同的输入源,例如:

Scanner scanner = new Scanner(System.in);  // 从标准输入读取
Scanner scanner1 = new Scanner(new File("input.txt"));  // 从文件读取
Scanner scanner2 = new Scanner("Some text");  // 从字符串读取
next()

该方法会读取输入源中的下一个标记(默认情况下是以空白符分隔的字符串),返回一个字符串。使用示例:

Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String str = scanner.next();
System.out.println("您输入的字符串是:" + str);
nextInt()

该方法会读取输入源中的下一个整数,并返回它。使用示例如下:

Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数:");
int a = scanner.nextInt();
System.out.println("您输入的整数是:" + a);
nextLine()

该方法会读取输入源中的下一行文本,并将其作为字符串返回。使用示例如下:

Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String str = scanner.nextLine();
System.out.println("您输入的字符串是:" + str);
实例

假设有一个名为input.txt的文件,其中包含以下内容:

A 1
B 2
C 3

我们可以使用Scanner类读取这个文件的内容,并将其放入一个HashMap中:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class FileScanner {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        try {
            Scanner scanner = new Scanner(new File("input.txt"));
            while (scanner.hasNext()) {
                String key = scanner.next();
                int value = scanner.nextInt();
                map.put(key, value);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        System.out.println(map);
    }
}

运行该程序,输出如下:

{A=1, B=2, C=3}
注意事项

使用Scanner类时,需要注意以下几点:

  • 在读取整数时,输入源中必须包含整数,否则会抛出InputMismatchException异常。
  • 在读取字符串时,Scanner类默认按空白符分隔字符串,可以通过调用Scanner的delimiter()方法改变分隔符。
  • 在使用Scanner访问输入源时,需要保证输入源存在,否则会抛出FileNotFoundException异常。
  • 在读取结束后,记得要调用close()方法关闭Scanner对象,以释放资源。