_java中如何输入
使用 Scanner 类获取用户输入
Scanner 类是 Java 中最常用的输入方式,位于 java.util 包中。通过创建 Scanner 对象并关联到标准输入流 System.in,可以读取不同类型的输入数据。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数: ");
int num = scanner.nextInt();
System.out.print("请输入一个字符串: ");
String str = scanner.next();
System.out.println("输入的整数: " + num);
System.out.println("输入的字符串: " + str);
scanner.close();
}
}
Scanner 提供了多种方法来读取不同类型的数据:
nextInt()读取整数nextDouble()读取双精度浮点数next()读取单个单词(以空格分隔)nextLine()读取整行文本
使用 BufferedReader 读取输入
BufferedReader 提供了更高效的输入方式,特别适合大量数据的读取。需要配合 InputStreamReader 使用。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入一行文本: ");
String line = reader.readLine();
System.out.println("输入的文本: " + line);
reader.close();
}
}
BufferedReader 的 readLine() 方法会读取整行输入,包括空格。需要处理可能的 IOException。
控制台输入与命令行参数
Java 程序可以通过 main 方法的参数接收命令行输入:
public class Main {
public static void main(String[] args) {
if (args.length > 0) {
System.out.println("第一个命令行参数: " + args[0]);
} else {
System.out.println("没有提供命令行参数");
}
}
}
运行程序时通过命令行传递参数:
java Main 参数1 参数2
格式化输入处理
对于需要特定格式的输入,可以结合正则表达式进行验证:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入日期(YYYY-MM-DD): ");
String date = scanner.next();
if (date.matches("\\d{4}-\\d{2}-\\d{2}")) {
System.out.println("有效日期格式: " + date);
} else {
System.out.println("无效日期格式");
}
scanner.close();
}
}
输入流异常处理
良好的输入处理应该包含异常处理机制:
import java.util.InputMismatchException;
import java.util.Scanner;
public class Main {
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("输入的不是有效整数");
scanner.next(); // 清除错误的输入
} finally {
scanner.close();
}
}
}
文件输入处理
从文件读取输入也是常见的需求:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
try {
Scanner fileScanner = new Scanner(new File("input.txt"));
while (fileScanner.hasNextLine()) {
String line = fileScanner.nextLine();
System.out.println(line);
}
fileScanner.close();
} catch (FileNotFoundException e) {
System.out.println("文件未找到");
}
}
}
这种方法适用于需要从外部文件读取数据的场景。

