欢迎访问宙启技术站
智能推送

利用Java中的Scanner函数进行控制台输入输出

发布时间:2023-06-10 15:43:25

Scanner类是Java中一个非常重要的输入类,它允许开发人员通过控制台输入数据并将数据传递到程序中。Scanner类提供了许多功能,可以轻松地从输入源中读取字符、字符串、数字和布尔值等数据类型。在本文中,我们将学习如何使用Scanner类来进行控制台输入和输出处理。

Java中Scanner类的定义

在Java中,Scanner类属于Java.util包,它提供用于扫描和解析输入的方法。它允许开发人员根据需要从键盘、文件或字符串中获取输入,并使用不同的方法来访问所有可能的文件类型。Scanner类的构造函数需要一个输入流参数,它可以是System.in、文件或字符串。下面是Scanner类的构造函数的定义。

public Scanner(InputStream stream) 

如何创建一个Scanner对象

在Java中创建Scanner对象可以传递任何类型的输入源,例如键盘输入、文件、字符串等。以下是一些例子说明如何创建Scanner对象。

从键盘输入创建Scanner对象

Scanner input = new Scanner(System.in);

从文件输入创建Scanner对象

File file = new File("filename.txt");

Scanner input = new Scanner(file);

从字符串输入创建Scanner对象

String inputString = "this is input string";

Scanner input = new Scanner(inputString);

Scanner类的主要方法

Scanner类提供了一些有用的方法来进行数据读取,如next(), nextLine(), nextInt()等方法。

next()方法

next()方法用于读取输入的字符串数据,该方法返回读取的字符串,以空格分隔。

Scanner input = new Scanner(System.in);

String s = input.next();

nextLine()方法

nextLine()方法用于读取输入的字符串数据,该方法返回读取的字符串,以回车换行符 "

" 分隔。

Scanner input = new Scanner(System.in);

String s = input.nextLine();

nextInt()方法

nextInt()方法用于读取输入的整数数据,该方法返回读取的整数。

Scanner input = new Scanner(System.in);

int i = input.nextInt();

Scanner类的应用实例

现在我们来看一个使用Scanner类的简单例子。此时我们假设需要从控制台输入两个整数并将它们相加,结果通过控制台输出。

import java.util.Scanner;

public class SumOfTwoNumbers {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        System.out.print("Enter First Number: ");

        int num1 = scanner.nextInt();

        System.out.print("Enter Second Number: ");

        int num2 = scanner.nextInt();

        int result = num1 + num2;

        System.out.println("Sum of Two Numbers is: " + result);

    }

}

在上面的代码中,我们首先创建了一个Scanner对象来读取输入。然后我们要求用户输入两个整数,并将它们存储在num1和num2变量中。我们将这些数相加,将结果存储在另一个变量中,并通过调用System.out.println()将其打印在控制台上。

Scanner类的异常和错误处理

Scanner类的方法可以引发各种异常,例如NoSuchElementException、IllegalStateException、NullPointerException等。 如果输入不匹配或遇到意外的输入,则Scanner方法将抛出一个InputMismatchException异常。为了避免这些错误,我们应该始终使用输入验证和错误处理来处理这些异常。以下是一个示例程序,演示如何使用try-catch块来捕获Scanner类的异常,并处理它们。

import java.util.InputMismatchException;

import java.util.Scanner;

public class ScannerErrorHandling {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        System.out.print("Enter a Number: ");

        try {

            int num = scanner.nextInt();

            System.out.println("You Entered: " + num);

        } catch(InputMismatchException e) {

            System.out.println("Invalid Input. Please Enter a Number.");

        }

    }

}

在上面的代码中,我们首先创建一个Scanner对象,然后要求用户输入一个整数。然后我们使用try-catch块来捕获可能发生的InputMismatchException异常。如果该异常被捕获,则将输出一条错误消息告诉用户输入无效。

总结

Scanner类是Java中一个非常重要的输入类,它允许开发人员轻松地从不同的输入源中读取输入数据。Scanner类提供了许多功能,例如next(), nextLine(), nextInt()等方法,以用于读取不同类型的数据。开发人员应该始终小心处理Scanner类的异常和错误,以避免程序崩溃。