我尝试从命令行计算 args 中的数字(在我的计算器中)。示例:
args[0] = 2*3;
String result = method(args[0]);
System.out.println(result) // should be 6
我不知道如何在两个数字之间使用我的字符,例如“+”、“-”。我不能使用循环。我的方法想法是使用 charAt ,例如:
char a = arg.charAt(0);
char b = arg.charAt(1);
char c = arg.charAt(2);
但我不知道更改我的 b char (*) 来进行计算。
最佳答案
您没有正确传递该值。你的输入是一个字符串,对吧?您的代码显示了一个整数表达式。
args[0] = "2*3"; //note that this changed to a string
double result = parse(args[0]);
System.out.println(result) // should be 6
然后你可以在你的方法中解析你的字符串:
double parse(String str){
int num1 = Integer.valueOf(str.substring(0,1));
char operator = str.charAt(1);
int num2 = Integer.valueOf(str.substring(2,3));
switch(operator){
case '+': return num1+num2;
case '-': return num1-num2;
case '*': return num1*num2;
case '/': return num1/num2;
default: throw new IllegalArgumentException();
}
}
运行 System.out.println(parse("2*3"));
使用我的代码打印 6.0
。
当然,这只适用于只有一位数字的操作数。但这是来自您的 charAt
想法的限制。
关于java - 如何在程序中从命令行使用数学运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36420887/