跳转至

Java 中导入 Scanner 类的全面指南

简介

在 Java 编程里,从用户那里获取输入是一项常见需求。Scanner 类为我们提供了一种便捷的方式来读取不同类型的输入,像文本、数字等。本博客将深入探讨在 Java 中导入和使用 Scanner 类的相关知识,涵盖基础概念、使用方法、常见实践以及最佳实践,助力读者熟练掌握这一重要工具。

目录

  1. 基础概念
  2. 使用方法
  3. 常见实践
  4. 最佳实践
  5. 小结
  6. 参考资料

基础概念

什么是 Scanner 类

Scanner 类属于 Java 的 java.util 包,它的主要功能是解析基本类型和字符串。借助 Scanner 类,我们能够从多种输入源(如键盘、文件等)读取数据。

为何需要导入 Scanner 类

Java 中的类默认只能访问自身所在包中的类。Scanner 类位于 java.util 包,若要在代码里使用它,就必须先导入该类,这样编译器才能识别 Scanner 类。

使用方法

导入 Scanner 类

在 Java 代码里,可使用 import 语句导入 Scanner 类:

import java.util.Scanner;

public class ScannerExample {
    public static void main(String[] args) {
        // 后续代码
    }
}

创建 Scanner 对象

导入 Scanner 类之后,需要创建一个 Scanner 对象。通常会把标准输入流 System.in 作为输入源,以此从键盘读取用户输入:

import java.util.Scanner;

public class ScannerExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // 后续代码
    }
}

读取不同类型的输入

  • 读取字符串:使用 next()nextLine() 方法。next() 方法读取到空格就会停止,而 nextLine() 方法会读取整行内容。
import java.util.Scanner;

public class ScannerExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String input = scanner.nextLine();
        System.out.println("你输入的字符串是:" + input);
        scanner.close();
    }
}
  • 读取整数:使用 nextInt() 方法。
import java.util.Scanner;

public class ScannerExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int number = scanner.nextInt();
        System.out.println("你输入的整数是:" + number);
        scanner.close();
    }
}

常见实践

计算两个数的和

import java.util.Scanner;

public class SumCalculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入第一个整数:");
        int num1 = scanner.nextInt();
        System.out.println("请输入第二个整数:");
        int num2 = scanner.nextInt();
        int sum = num1 + num2;
        System.out.println("两个数的和是:" + sum);
        scanner.close();
    }
}

读取用户选择

import java.util.Scanner;

public class UserChoice {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请选择操作:1. 加法 2. 减法");
        int choice = scanner.nextInt();
        switch (choice) {
            case 1:
                System.out.println("你选择了加法操作");
                break;
            case 2:
                System.out.println("你选择了减法操作");
                break;
            default:
                System.out.println("无效的选择");
        }
        scanner.close();
    }
}

最佳实践

关闭 Scanner 对象

在使用完 Scanner 对象之后,要调用 close() 方法将其关闭,这样可以释放系统资源。若不关闭,可能会导致资源泄漏。

处理异常

当使用 nextInt()nextDouble() 等方法时,如果用户输入的不是对应的类型,就会抛出 InputMismatchException 异常。可以使用 try-catch 块来捕获并处理这类异常。

import java.util.InputMismatchException;
import java.util.Scanner;

public class ExceptionHandling {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        try {
            System.out.println("请输入一个整数:");
            int number = scanner.nextInt();
            System.out.println("你输入的整数是:" + number);
        } catch (InputMismatchException e) {
            System.out.println("输入不是有效的整数");
        }
        scanner.close();
    }
}

小结

在 Java 中导入和使用 Scanner 类是一项基础且实用的技能。通过导入 java.util.Scanner 类,创建 Scanner 对象,我们可以方便地从用户那里获取不同类型的输入。在实际使用过程中,要记得关闭 Scanner 对象并处理可能出现的异常,以确保代码的健壮性和资源的有效利用。

参考资料

  • 《Effective Java》(第三版)
  • 《Core Java》(第十版)