功能如何在Java中使用输入字符串调用一个函数,如何调用从输入字符串中的Java
实际上,我想这样做:给定一个字符串
输入:罪(44) + 10 + cos(10)
输出:我想要得到输入的答案。
/我写这篇满足的条件提出一个问题,所以不要看到这条线之下/ 公共静态无效的主要(字串[] args)抛出异常
功能如何在Java中使用输入字符串调用一个函数,如何调用从输入字符串中的Java
实际上,我想这样做:给定一个字符串
输入:罪(44) + 10 + cos(10)
输出:我想要得到输入的答案。
/我写这篇满足的条件提出一个问题,所以不要看到这条线之下/ 公共静态无效的主要(字串[] args)抛出异常
您可以使用内置的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));
}
}
您需要查找数学表达式解析器库。可能是这样的:mathparser.org
尝试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();
最好的问候
我该如何在java中做到这一点:我想打破字符串,只是识别子字符串是一个函数,并调用它并得到答案 – jack