繁体   English   中英

Java:要求用户输入2个数字,然后打印总和错误

[英]Java: Asking the user for 2 numbers, then printing sum error

当我尝试运行此命令时,出现错误提示

Exception in thread "main" java.lang.NullPointerException
at lsamelson_lab5.LSamelson_Lab5.main(LSamelson_Lab5.java:21)
Java Result: 1

第21行是要求第一位用户输入的行。

我正在运行Ubuntu,是因为我没有正确导入控制台,还是我的java文件出了问题?

package lsamelson_lab5;

import java.io.Console;

/**
*
* @author binka
*/
public class LSamelson_Lab5 {

    /**
    * @param args the command line arguments
    */
    public static void main(String[] args) {
        // TODO code application logic here\
        Console console = System.console();
        String input = console.readLine("Please enter your first number:");
        int newinput = Integer.parseInt(input);
        String input2 = console.readLine("Please enter your second number: ");
        int newinput2 = Integer.parseInt(input2);
        int sum = newinput + newinput2;
        int diff = newinput - newinput2;
        int mult = newinput * newinput2;
        float div = newinput / newinput2;
        System.out.print(sum);
        System.out.print(diff);
        System.out.print(mult);
        System.out.print(div);
    }
}

采用

System.out.print("Please enter your first number:")  

代替

String input = console.readLine("Please enter your first number:");  

Console :: readLine()不是您需要的
用读行

Scanner in = new Scanner(System.in);  

编辑

Scanner in = new Scanner(System.in);
System.out.println("Please enter your first number:");
int newinput = in.nextInt();
System.out.println("Please enter your second number: ");
int newinput2 = in.nextInt();

javadoc中的java.io.Console

如果此虚拟机具有控制台,那么它将由此类的唯一实例表示,可以通过调用System.console()方法获得该实例。 如果没有控制台设备可用,则对该方法的调用将返回null

诸如Eclipse之类的IDE将导致找不到控制台。 但是,从命令提示符/ * nix shell运行通常会提供一个可以使用的控制台。

作为在没有Console环境中运行的解决方法,可以使用扫描仪

Scanner alernativeInput = new Scanner(System.in);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM