如何从java中的输入字符串调用函数

时间:2017-08-10 18:36:42

标签: java

如何使用java中的输入字符串调用函数,

实际上,我想这样做:

以字符串形式给出的输入:sin(44)+ 10 + cos(10)

输出:我想得到输入的答案。

/ 我写这篇文章是为了满足提问的条件所以不要在这行下面看 /    public static void main(String [] args)抛出异常

3 个答案:

答案 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/

教程:

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();

祝你好运