【问题标题】:system.console.readline() throws null pointer exception [duplicate]system.console.readline() 抛出空指针异常 [重复]
【发布时间】:2018-08-14 04:33:57
【问题描述】:

我正在使用下面的简单代码从控制台读取一行字符串,但得到空指针异常,请大家帮忙:

import java.io.Console;

public class readline_String {

    public static void main(String[] args)
    {
        // TODO Auto-generated method stub

        //String str=System.console().readLine();
        System.out.println("Enter an input string:");
        Console c=System.console();
        String str=c.readLine();
        System.out.println("The input string is:");
        System.out.println(str);

    }

}

【问题讨论】:

  • 来自System.console() 的文档:“返回:系统控制台,如果有的话,否则null。”
  • 遵循 Java 命名约定:类名应以大写开头。并且不要使用下划线,常量除外。

标签: java


【解决方案1】:

将您的代码替换为:

    System.out.println("Enter an input string:");
    Scanner sc = new Scanner(System.in);
    String str = sc.nextLine();
    System.out.println("The input string is:");
    System.out.println(str);

【讨论】:

  • 嗨,Maciej,非常感谢这项工作。不知道为什么它不适用于 system.console.readline()
【解决方案2】:

如果您在 IDE(例如:NetBeans)中尝试,它可能会显示 NullPointerException

它在 cmd 中显示正确的输出: 代码:

public class InputConsole {
    public static void main(String[] args) {
        System.out.print("Enter something:");
String input = System.console().readLine();
        System.out.println("input: "+input);
    }
}

输出:

您也可以使用 Scanner 或 BufferedReader

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 2020-11-22
    • 2020-08-10
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多