java - 如何在程序中从命令行使用数学运算符?

标签 java

我尝试从命令行计算 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/

相关文章:

java - 安卓 : Keep httpclient running in background and communicate with activity when message recieved by httpclient

java - 开始使用 TestFx

java - 如何让 jslider 在滑动时真正影响事物?

java - Android 2D游戏简单引擎或框架

java - 为什么我的短语查询给我的结果这么少?

java - 扫描仪 nextLine() 异常 : no line found

java - com.iplanet.services.comm.client.SendRequestException : sun. security.validator.ValidatorException:PKIX 路径构建失败:

java - + 运算符和字符串

java - 如何将多个谓词应用于 java.util.Stream?

java - 如何使用 Aspose Word for Java 从 .doc 读取文本和字体