Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android中执行数学方程_Java_Javascript_Android - Fatal编程技术网

Java 在Android中执行数学方程

Java 在Android中执行数学方程,java,javascript,android,Java,Javascript,Android,我需要能够处理一个数学方程,如我的应用程序中的“(45+9)/8”。我只想用JavaScript来评估它,但意识到我不能在Android中使用javax.script。所以,我找到了WebView,但我在使用它时遇到了一些麻烦。大多数示例都提到使用JS代码的外部页面,或者使用“javascript:var return…etc”。我需要使用后者,但在将变量返回到我的应用程序时遇到了一些问题 是否可以让JS评估它,然后将值写入隐藏的文本视图?签出。它是一个简单的java表达式计算器。对于您在问题中

我需要能够处理一个数学方程,如我的应用程序中的“(45+9)/8”。我只想用JavaScript来评估它,但意识到我不能在Android中使用javax.script。所以,我找到了WebView,但我在使用它时遇到了一些麻烦。大多数示例都提到使用JS代码的外部页面,或者使用“javascript:var return…etc”。我需要使用后者,但在将变量返回到我的应用程序时遇到了一些问题

是否可以让JS评估它,然后将值写入隐藏的文本视图?

签出。它是一个简单的java表达式计算器。对于您在问题中发布的等式,您可以:

Calculable calc = new ExpressionBuilder("(45+9)/8").build()
double result1=calc.calculate();

对于更高级的expression来说,一个有趣的选择可能是将其转换为一个您可以在手机上使用的Web服务。

试试这个:

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.swing.JOptionPane;

private void btnEqualsActionPerformed(java.awt.event.ActionEvent evt) {
    String expression = txtResult.getText();
    ScriptEngineManager mgr = new ScriptEngineManager();
    ScriptEngine engine = mgr.getEngineByName("JavaScript");
    try {
        result = engine.eval(expression).toString();
        txtResult.setText(result);
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, txtResult.getText() + " cannot be calculated. Try again!", "Error on calculation!", JOptionPane.WARNING_MESSAGE);
        txtResult.setText("");
    }
}

伙计,不需要javascript。你所需要的只是计算数学方程的标准Java,我用它来计算用户输入的方程。这意味着我必须能够计算一个字符串。你的答案看起来肯定比我希望的更好。在android应用程序中,我把de和META-INF文件夹放在哪里?你所要做的就是把jar放在你的/libs目录中。如果没有可用的连接怎么办?如果你能在没有可达性的情况下对表达式进行求值,那就更好了。我无法在Android中导入所需的类。