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 - 如何显示表中属性的属性 - Java

java - 我可以拥有什么作为 Maven Artifact 以及如何使用它?

java - Hazelcast 预定作业(支持 Quartz?)

java - 调用 hibernate session.get 方法

Java toString 不起作用

java - 这是聚合吗?

java - 使用 YouTubePlayerFragment 时出现空白黑框

java - 如何在Spring MVC中创建属性文件的List对象?

java - 使用线程点击 url

java - Netbeans 项目从资源管理器中消失