Java中的命令行计算器仅使用if else

时间:2017-11-13 09:25:29

标签: java command-line calculator

我收到了这个问题,但我觉得我的代码有问题。

编写Java程序以接受3个命令行参数进行计算。 第一个和第三个参数必须是整数。 第二个参数必须是+ - x / 如果3个参数正确,程序将打印出计算结果。不要使用开关,只能使用if。

我输入以下参数:

1 '*' 2

然后得到“你输入了一个无效的运算符”。如果我删除'*'并将其替换为*:

1 * 2

我的代码根本无法工作,我收到以下错误:

Exception in thread "main" java.lang.NumberFormatException:

For input string: ".project"

at java.lang.NumberFormatException.forInputString(Unknown Source)

at java.lang.Integer.parseInt(Unknown Source)

at java.lang.Integer.parseInt(Unknown Source)

at Command1.main(Unknown Source)

知道如何纠正我的代码吗?我想知道我是否应该用String替换char,但是无法使符号起作用。

代码:

import java.util.Scanner;
public class Command1 {

public static void main(String[] args) {
    int num1 = Integer.parseInt(args[0]);
    char symbol = args[1].charAt(0);
    int num2 = Integer.parseInt(args[2]);
    System.out.println(args[0]+" "+args[1]+" "+args[2]+" = ");
    if(symbol=='+')
    {
        System.out.println(num1+num2);
    }
    else if(symbol=='-')
    {
        System.out.println(num1-num2);
    }
    else if(symbol=='*')
    {
        System.out.println(num1*num2);
    }
    else if(symbol=='/')
    {
        System.out.println(num1/num2);
    }
    else
    {
        System.out.println("You have entered an invalid operator.");
    }
    // TODO Auto-generated method stub

 }

}

2 个答案:

答案 0 :(得分:0)

您的问题只是使用您传递的引号作为参数。

使用'或不引用会导致上面引用的两个错误。

尝试使用双引号:

java Command1 5 "*" 2

答案 1 :(得分:0)

使用符号的双引号可以得到答案。 喜欢 4" *" 2