当前位置: 首页 > 面试题库 >

Java String完成数学求和

萧修永
2023-03-14
问题内容

在Java中,我目前正在尝试寻找一种方法来进行数学求和,方法是在JTextField中输入文本,将其放入String,然后将其转换为int并求解。但是问题是,我不想简单地在字符串中输入
数字 ,而是实际的 总和, 包括加法,减法等。

目前,它只接受做类似的事情,1将从字符串转换为int,但是当我执行‘1 + 1’甚至只是‘1+’时,它到处都会引发异常,因为’+’不是数字。
我已经知道这不会起作用,因为int仅允许数字。

有什么方法可以安全地在文本字段中键入一个完整的总和,然后以某种方式将其转换为int吗?就像输入7-2 * 5,然后将答案保存在int一样?

谢谢。


问题答案:

您可以使用JavaScript引擎:

ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String expression = textField.getText();
System.out.println(engine.eval(expression));

编辑以允许所有方程式:

您现在所要做的就是允许 犯罪,cos,棕褐色 这样的事情:

ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String expression = textField.getText();

// Between here...
        expression = expression.
                replace("sin", "Math.sin").
                replace("cos", "Math.cos").
                replace("tan", "Math.tan").
                replace("sqrt", "Math.sqrt").
                replace("log", "Math.log").
                replace("pi", "Math.PI");
// And so on...

System.out.println(engine.eval(foo));

因此,您可以执行以下操作:

5 + 5 - 2 / 5 + sin(55) - log(20)

任何你想要的。



 类似资料:
  • 问题内容: 请告诉我一个实时的情况来比较String,StringBuffer和StringBuilder? 问题答案: 如果使用的是JGraph,则应尝试为算法设计的。它的功能之一是使用库进行可视化。它仍然开发,但相当稳定。我前段时间分析了算法的复杂性。其中一些并不是最快的,但是如果你要自己实现它们并需要显示图形,那么它可能是最佳选择。我真的很喜欢使用它的API,当时我不得不快速编写一个在图形上

  • 数据自动完成指在不需要手动赋值的情况下对字段的值进行处理后写入数据库。 系统支持auto、insert和update三个属性,可以分别在写入、新增和更新的时候进行字段的自动完成机制,auto属性自动完成包含新增和更新操作,例如我们定义User模型类如下: <?php namespace app\index\model; use think\Model; class User extends M

  • 问题内容: 在Bash中,可以通过追加在后台执行命令。如何在Python中完成? 问题答案: 我用。我在模块级别创建一个单例线程池,然后用于启动任务。 该命令给了我一个未来,我可以将它无限期地与其他未来添加到列表中,直到我想收集全部或部分结果为止。 出于所有逻辑和理由,是一个THREAD池而不是一个进程池。 示例(只要安装了请求,就可以在Python 2和3中使用): 这些请求将同时执行,因此运行

  • 问题内容: 我正在测试Redis的“全双工”通信,如此处所示,并阅读了文档,我认为以及都有一个客户端池,因此能够并行处理多个MQ消息。 但是,在Github上的测试项目中,在我看来并非如此,或者我缺少了一些东西。该解决方案包括: EventPublisher:.NET Core WinForms应用程序,用于将Hello DTO发布到MQ EventConsumer:具有用于处理Hello DTO

  • 我似乎遇到了典型的“异步问题”,无法解决。 我有一个引导表单向导,这只是一个即兴的标签/幻灯片类似的东西。我所有的“步骤”都是在各自的标签/幻灯片内的表格。 它有一组下一个/上一个按钮可以在幻灯片周围导航。并且在移动到下一张幻灯片之前,它提供了一个函数回调。在其中(回调),我正在“客户端验证”当前幻灯片中的表单,如果它被验证了,那么我将使用Ajax提交表单。一旦我从服务器得到响应,我就决定是返回t

  • 本文向大家介绍MongoDB聚合/数学运算求和特定学生的分数,包括了MongoDB聚合/数学运算求和特定学生的分数的使用技巧和注意事项,需要的朋友参考一下 总计,请与$sum一起使用。让我们创建一个包含文档的集合- 在方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是特定学生的汤姆总和查询分数- 这将产生以下输出-