すべてをゼロからやりたい場合は、方程式パーサーを考え出す必要があります。
そこから Enum を使用します:
enum Operation{ADD, SUBTRACT;
public int evaluate(int operand1, int operand2) throws IllegalOperationException {
switch(this) {
case ADD: return operand1 + operand2;
case SUBTRACT: return operand1 - operand2;
default:
break;
}
throw new IllegalOperationException();
}
public static Operation getOperator(String operator) throws IllegalOperationException{
for(Operation o: Operation.values()){
if(o.toString().equals(operator)){
return o;
}
}
throw new IllegalOperationException();
}
};
したがって、スタック/キューを使用して方程式を解析し、各 operator(op) に対して基本的に次のことを行います。
Operation.getOperator(op).evaluate(r1, r2);
また
constructed string
jdk1.6 以降を使用している場合は、x と y を x[i] と y[i] に置き換えて、組み込みの JavaScript エンジンに渡します。
ScriptEngineManager sm = new ScriptEngineManager();
ScriptEngine en = sm.getEngineByName("JavaScript");
String expression = //your expression with values;
System.out.println(engine.eval(expression));