二,Scanner

bjynjj / 2024-11-05 / 原文

Scanner类详解

在Java编程中,Scanner类是一个简单的文本扫描器,它可以解析原始类型和字符串。Scanner类提供了多种方法来获取输入的类型和内容。本文将详细探讨Scanner类的用法、构造方法和成员方法,包括next()nextLine()nextInt()等。

Scanner类概述

Scanner类是java.util包中的一个类,用于从InputStreamReader中获取输入数据。

构造方法

Scanner类的构造方法允许你指定输入流的来源。

示例代码

import java.util.Scanner;

public class ScannerExample {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); // 从标准输入流System.in创建Scanner
        System.out.println("Enter an integer: ");
        int number = sc.nextInt(); // 读取下一个整数
        System.out.println("You entered: " + number);
    }
}

成员方法

Scanner类提供了多种方法来获取不同类型的输入。

获取字符串

  • next():获取下一个完整的输入项,忽略空格和换行符。
  • nextLine():获取下一个完整的输入行,包括行尾的换行符。

示例代码

import java.util.Scanner;

public class ScannerExample {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); // 从标准输入流System.in创建Scanner
        System.out.println("Enter a line: ");
        String line = sc.nextLine(); // 读取下一行文本
        System.out.println("You entered: " + line);
    }
}

获取数值

  • nextInt():获取下一个整数。
  • nextDouble():获取下一个双精度浮点数。

示例代码

import java.util.Scanner;

public class ScannerExample {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); //从标准输入流System.in创建Scanner
        System.out.println("Enter an integer: ");
        int number = sc.nextInt(); //读取下一个整数
        System.out.println("You entered: " + number);
        System.out.println("Enter a double: ");
        double d = sc.nextDouble(); //读取下一个双精度浮点数
        System.out.println("You entered: " + d);
    }
}

注意事项

  • Scanner类默认使用空格和换行符作为分隔符,如果输入中包含空格或换行符,需要使用nextLine()方法。
  • nextInt()nextDouble()等方法可以抛出InputMismatchException,如果输入的类型不匹配。
  • Scanner类可以处理InputStreamReader的输入。

总结

Scanner类是一个强大的工具,用于从输入流中获取不同类型的数据。通过理解和正确使用Scanner类,我们可以轻松地从控制台或文件中读取和解析数据。这些技能对于处理用户输入和文件处理非常重要。掌握Scanner类对于编写高质量、可维护的Java代码至关重要。通过使用Scanner类,我们可以编写更灵活和强大的输入处理程序。