我收到了这个问题,但我觉得我的代码有问题。
编写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
}
}
答案 0 :(得分:0)
您的问题只是使用您传递的引号作为参数。
使用'
或不引用会导致上面引用的两个错误。
尝试使用双引号:
java Command1 5 "*" 2
答案 1 :(得分:0)
使用符号的双引号可以得到答案。 喜欢 4" *" 2 强>