java如何使用scanner
使用Scanner类读取输入
Scanner类是Java中用于读取用户输入的实用工具类,位于java.util包中。它可以解析基本类型和字符串,支持从多种输入源(如控制台、文件等)读取数据。
基本用法
-
导入Scanner类 在代码开头添加导入语句:
import java.util.Scanner; -
创建Scanner对象 通常用于读取控制台输入时,需要传入
System.in作为参数:Scanner scanner = new Scanner(System.in); -
读取不同类型的数据 Scanner提供了多种方法来读取不同类型的数据:
next():读取字符串(以空格分隔)nextLine():读取整行文本nextInt():读取整数nextDouble():读取双精度浮点数nextBoolean():读取布尔值
示例代码
import java.util.Scanner;
public class ScannerExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入您的姓名:");
String name = scanner.nextLine();
System.out.print("请输入您的年龄:");
int age = scanner.nextInt();
System.out.print("请输入您的身高(米):");
double height = scanner.nextDouble();
System.out.println("姓名:" + name);
System.out.println("年龄:" + age);
System.out.println("身高:" + height + "米");
scanner.close();
}
}
注意事项
-
输入类型匹配 当使用
nextInt()等方法时,如果用户输入的类型不匹配,会抛出InputMismatchException异常。可以在读取前使用hasNextInt()等方法检查输入是否合法。 -
换行符问题 在混合使用
nextLine()和其他nextXxx()方法时,可能会遇到换行符被意外读取的问题。可以在读取非字符串数据后调用一次nextLine()来消耗换行符。 -
资源关闭 使用完Scanner后,应该调用
close()方法释放资源,特别是在读取文件时。
读取文件示例
Scanner也可以用于读取文件内容:
import java.io.File;
import java.util.Scanner;
public class FileScannerExample {
public static void main(String[] args) throws Exception {
Scanner fileScanner = new Scanner(new File("example.txt"));
while(fileScanner.hasNextLine()) {
System.out.println(fileScanner.nextLine());
}
fileScanner.close();
}
}
处理异常
为了程序的健壮性,应该添加异常处理:
import java.util.InputMismatchException;
import java.util.Scanner;
public class SafeScanner {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
System.out.print("请输入一个整数:");
int num = scanner.nextInt();
System.out.println("您输入的是:" + num);
} catch (InputMismatchException e) {
System.out.println("输入的不是有效整数!");
} finally {
scanner.close();
}
}
}





