📜  Java中的扫描器类(1)

📅  最后修改于: 2023-12-03 15:32:00.291000             🧑  作者: Mango

Java中的Scanner类

简介

Scanner类是Java中的一个标准类,可以用于读取用户输入、文本文件内容等操作。Scanner类可以扫描基本数据类型和字符串,并将其转换成所需的类型。使用Scanner类可以简化Java中对标准输入的读取操作,它提供了许多实用的方法,例如nextInt(), nextDouble(), nextLine()等。

创建Scanner对象

使用Scanner需要先创建Scanner对象,通过构造方法传入要扫描的源、文件或标准输入流等,例如:

import java.util.Scanner;

Scanner scanner = new Scanner(System.in);  // 从标准输入读取

接下来就可以调用Scanner类的方法进行操作。

常用的Scanner方法
next()

next()方法可以读取并返回输入流中的下一个字符串,遇到空格或回车就会停止读取。例如:

Scanner scanner = new Scanner(System.in);
String str = scanner.next();
System.out.println(str);  // 输出用户输入的字符串
nextInt()

nextInt()方法可以读取并返回输入流中的下一个int类型的值。例如:

Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
System.out.println(num);  // 输出用户输入的整数

若用户输入的不是正确的int类型的值,则会抛出InputMismatchException异常。

nextLine()

nextLine()方法可以读取输入流中的下一行,遇到回车就会停止读取,并返回该行的全部内容。例如:

Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
System.out.println(str);  // 输出用户输入的一行字符串
hasNextInt()

hasNextInt()方法用于判断下一个输入是否为int类型的值,若为int类型则返回true,否则返回false。例如:

Scanner scanner = new Scanner(System.in);
if (scanner.hasNextInt()) {
    int num = scanner.nextInt();
    System.out.println(num);
} else {
    System.out.println("输入的不是整数!");
}
useDelimiter()

useDelimiter()方法用于设置分隔符,Scanner类默认的分隔符为空白符(空格、制表符、回车)。例如,若需要以逗号分隔读取输入的多个值,则可以这样使用:

Scanner scanner = new Scanner(System.in);
scanner.useDelimiter(",");
while (scanner.hasNext()) {
    String str = scanner.next();
    System.out.println(str);
}

以上就是常用的Scanner方法,其他还有很多实用方法,需要根据具体的使用情况进行选择。

示例程序

以下是一个简单的示例程序,实现从标准输入中读取用户输入的数字和字符串,并输出它们的和:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        String str = scanner.next();
        int sum = num + Integer.parseInt(str);  // 将读取的字符串转换成整型
        System.out.println("输入的数字是:" + num);
        System.out.println("输入的字符串是:" + str);
        System.out.println("数字和字符串的和是:" + sum);
    }
}

使用上述程序,输入“5 hello”,输出结果为:

输入的数字是:5
输入的字符串是:hello
数字和字符串的和是:5hello
总结

Scanner是一个非常实用的类,可以方便地读取用户输入、文件内容等。在实际开发中,需要根据程序的需要选择合适的方法进行操作,并注意对异常的处理。