如何使用java中的输入字符串调用函数,
实际上,我想这样做:以字符串形式给出的输入:sin(44)+ 10 + cos(10)
输出:我想得到输入的答案。
/ 我写这篇文章是为了满足提问的条件所以不要在这行下面看 / public static void main(String [] args)抛出异常
答案 0 :(得分:1)
您需要查找数学表达式解析器库。也许是这样的:mathparser.org
答案 1 :(得分:0)
您可以使用内置的JavaScript解释器。
import java.util.Scanner;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class Test {
public static void main(String[] args) throws InterruptedException, ScriptException{
Scanner sc=new Scanner(System.in);
System.out.println("Enter expression : ");
String expression = sc.next(); //Enter -> sin(44)+10+cos(10)
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String foo = "cos = Math.cos;" // ; or \n
+ "sin = Math.sin;"
+ expression;
System.out.println(engine.eval(foo));
}
}
答案 2 :(得分:0)
试试MathParser.org-mXparser。
教程:
http://mathparser.org/mxparser-tutorial/
http://mathparser.org/mxparser-tutorial/simple-expressions/
解决问题的代码示例
import org.mariuszgromada.math.mxparser.*;
...
...
Expression e = new Expression("sin(44)+10+cos(10)");
double result = e.calculate();
祝你好运