利用Java中的Scanner函数进行控制台输入输出
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类的异常和错误,以避免程序崩溃。
