当前位置: 首页 > 知识库问答 >
问题:

Java字符串转换为数学方程[副本]

祁宝
2023-03-14

我需要实现函数public int eval(String infix){...},当我这样使用它时:

eval("3+2*(4+5)") 

我必须收到21英镑。

算术表达式可以包含“+”、“*”和括号。

那么,我怎么把这个转换成数学方程呢?我不能使用非标准库。

更新:找到解决方案。

它有两种方法:润色符号和使用ScriptEngine。

共有1个答案

拓拔富
2023-03-14

信不信由你,通过JDK1.6,您可以使用内置的Javascript引擎。根据您的需要定制。

确保您有这些进口...

import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;

代码:

ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String infix = "3+2*(4+5)";
System.out.println(engine.eval(infix));
 类似资料:
  • 如何将“4,250,000.40”转换为4,250,000.40,即通过保留逗号和点将字符串转换为数字?使用JavaScript

  • 我在字符串中获取日期,我想将其转换为给定的日期格式。任何人都可以指导我该怎么做? 我得到这样的日期,我想把它转换成这个格式。 是每个月的默认值。

  • 问题内容: 给定一个数字: 将其转换为字符串的“最佳”方法是: 问题答案: 有多种方法: (我的偏爱) (我不知道编译器如何处理它,也许它和上面一样有效)

  • 问题内容: 这是将ByteBuffer转换为String的正确方法吗? 我问的原因是,这看起来太简单了,而其他方法,例如Java:在ByteBuffer和ByteBuffer之间来回转换字符串以及相关的问题看起来却更加复杂。 问题答案: 编辑(2018): @xinyongCheng编辑的同级答案是一种更简单的方法,应该被接受。 如果您知道字节在平台的默认字符集中,则您的方法将是合理的。在您的示例

  • 问题内容: 我有一个; 我想转换为字符串数组。我该怎么做?有内置的Java函数吗?可以手动完成,但是我正在搜索Java内置函数。 我想要一个数组,其中字符串的每个字符都是一个字符串。像char’n’现在将是存储在数组中的字符串“ n”。 问题答案: 要开始你的作业,请在正则表达式上拆分字符串,该表达式可以为空字符串: 产生数组: 留空的第一条目留给读者练习:-) 注意:在Java 8中,不再包含空