📅  最后修改于: 2023-12-03 15:32:00.291000             🧑  作者: Mango
Scanner类是Java中的一个标准类,可以用于读取用户输入、文本文件内容等操作。Scanner类可以扫描基本数据类型和字符串,并将其转换成所需的类型。使用Scanner类可以简化Java中对标准输入的读取操作,它提供了许多实用的方法,例如nextInt(), nextDouble(), nextLine()等。
使用Scanner需要先创建Scanner对象,通过构造方法传入要扫描的源、文件或标准输入流等,例如:
import java.util.Scanner;
Scanner scanner = new Scanner(System.in); // 从标准输入读取
接下来就可以调用Scanner类的方法进行操作。
next()方法可以读取并返回输入流中的下一个字符串,遇到空格或回车就会停止读取。例如:
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
System.out.println(str); // 输出用户输入的字符串
nextInt()方法可以读取并返回输入流中的下一个int类型的值。例如:
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
System.out.println(num); // 输出用户输入的整数
若用户输入的不是正确的int类型的值,则会抛出InputMismatchException异常。
nextLine()方法可以读取输入流中的下一行,遇到回车就会停止读取,并返回该行的全部内容。例如:
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
System.out.println(str); // 输出用户输入的一行字符串
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()方法用于设置分隔符,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是一个非常实用的类,可以方便地读取用户输入、文件内容等。在实际开发中,需要根据程序的需要选择合适的方法进行操作,并注意对异常的处理。