Java 连接要计算的双精度和字符串
我有两个数组列表Java 连接要计算的双精度和字符串,java,function,arraylist,operators,Java,Function,Arraylist,Operators,我有两个数组列表 [+, / , - ] [12,8,5, 4] 我的代码: for(int i=0; i<ops.length; i++){ String op = setOps.get(i); double numer1 = Double.parseDouble(setNumbers.get(i)); double numer2 = Double.parseDouble(setNumbers.g
[+, / , - ]
[12,8,5, 4]
我的代码:
for(int i=0; i<ops.length; i++){
String op = setOps.get(i);
double numer1 = Double.parseDouble(setNumbers.get(i));
double numer2 = Double.parseDouble(setNumbers.get(i+1));
System.out.println(numer1+op+numer2);
}
我可以将运算符附加到数字上,但它们不会进行计算。这样做行不通。你需要让操作员用你自己的代码做它的事情 例如:
if(op.equals("+") ) {
double result = numer1 + numer2;
}
System.out.println(result);
使用Java8,您可以使用nashorn
import javax.script.*;
public class Calculate {
public static void main(String[] args) throws ScriptException {
String command = "1 / 2";
ScriptEngineManager scriptManager = new ScriptEngineManager();
ScriptEngine scriptEngine = scriptManager.getEngineByName("nashorn");
Object result = scriptEngine.eval(command);
System.out.println("result " + result);
}
}
在您的情况下(数学运算)
结果可以是整数
或双精度
。但在其他情况下可能是其他情况。为什么要进行评估?我不认为这样,您可以在运行时动态地放置“运算符”,就像您在执行op
时一样,并对其进行评估。
import javax.script.*;
public class Calculate {
public static void main(String[] args) throws ScriptException {
String command = "1 / 2";
ScriptEngineManager scriptManager = new ScriptEngineManager();
ScriptEngine scriptEngine = scriptManager.getEngineByName("nashorn");
Object result = scriptEngine.eval(command);
System.out.println("result " + result);
}
}