java如何在控制台上输入一句话

java如何在控制台上输入一句话

作者:Elara发布时间:2026-02-04阅读时长:0 分钟阅读次数:2

用户关注问题

Q
怎样用Java获取用户在控制台输入的文本?

我想要在Java程序中获取用户通过控制台输入的一句话,该如何实现?

A

使用Scanner类读取控制台输入

可以通过创建Scanner对象并调用nextLine()方法来读取用户输入的一整行文本。例如:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一句话:");
        String input = scanner.nextLine();
        System.out.println("你输入的是:" + input);
        scanner.close();
    }
}
Q
Java中如何确保从控制台读取的动态输入不会出错?

我担心在Java中读取控制台输入时,程序可能会因为输入过程出现异常而崩溃,有什么建议?

A

对输入进行异常处理和关闭资源

使用Scanner读取输入时,可以通过try-catch语句捕获可能出现的异常,比如InputMismatchException。同时,使用完Scanner后及时调用close()方法释放资源,避免资源泄漏。例如:

try (Scanner scanner = new Scanner(System.in)) {
    System.out.println("请输入一句话:");
    String input = scanner.nextLine();
    System.out.println("你输入的是:" + input);
} catch (Exception e) {
    System.out.println("输入发生错误,请重试。");
}
Q
可以用哪些Java类来读取控制台中的一行文本?

除了Scanner类,还有没有其他方法来实现从控制台输入一句话?

A

使用BufferedReader读取控制台输入

可以使用BufferedReader结合InputStreamReader读取控制台输入,示例代码如下:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("请输入一句话:");
        try {
            String input = reader.readLine();
            System.out.println("你输入的是:" + input);
        } catch (IOException e) {
            System.out.println("读取输入时出现错误。" + e.getMessage());
        }
    }
}