相关疑难解决方法(0)

在java中解析数学表达式的好库是什么?

我是Android开发人员,作为我的下一个应用程序的一部分,我将需要评估各种用户创建的数学表达式和方程式.我正在寻找一个很好的java库,它是轻量级的,可以使用用户定义的变量和常量,trig和指数函数等来评估数学表达式.

我环顾四周,Jep似乎很受欢迎,但我希望听到更多的建议,特别是那些之前使用过这些库的人.

java math parsing android

20
推荐指数
1
解决办法
2万
查看次数

寻找表达式评估器

我正在寻找一个简单条件表达式的求值器.表达式应包括变量(只读),字符串,数字和一些基本运算符.

例如这样的表达式:

${a} == "Peter" && ( ${b} == null || ${c} > 10 )
Run Code Online (Sandbox Code Playgroud)

到目前为止,我实现了一个相当"神奇"的解析器,它返回一个我可以评估的AST,但我无法相信我是第一个解决这个问题的人.

我可以使用哪些现有代码?

java

16
推荐指数
4
解决办法
2万
查看次数

Java BigDecimal三角法

我正在开发一个能够像String一样评估String的数学解析器'5+b*sqrt(c^2)'.我正在使用ANTLR进行解析并取得良好进展.现在我摔倒在Java类上BigDecimal并且想:嘿,为什么不在这里考虑精度.

我的问题是Java API不提供BigDecimal类似的三角函数方法java.lang.Math.你知道是否有像Apache Commons这样的好的数学库可以解决这个问题吗?

其他问题是如何实现功率方法,以便我可以用BigDecimals 计算4.9 ^ 1.4 .这可能吗?

关于数值计算的书籍请求也受到赞赏.

java precision trigonometry bigdecimal

12
推荐指数
2
解决办法
9722
查看次数

如何解析涉及括号的数学表达式

这不是学校作业或任何事情,但我意识到这是一个主要的学术问题.但是,我一直在努力做的是解析"数学"文本并提出答案.

例如 - 我可以弄清楚如何解析'5 + 5'或'3*5' - 但是当我尝试正确地将操作链接在一起时我失败了.

(5 + 5)*3

这大多只是让我烦恼,我无法弄明白.如果有人能指出我的方向,我真的很感激.

编辑 感谢您的所有快速回复.对不起,我没有更好地解释.

首先 - 我没有使用正则表达式.我也知道已有的库可以作为字符串使用数学表达式并返回正确的值.所以,我主要是看着这个,因为,遗憾的是,我并没有"明白".

第二 - 我尝试过的事情(可能是误入歧途),但我在计算'('和')'并首先评估最深的项目.在简单的例子中,这有效; 但我的代码不漂亮,更复杂的东西崩溃.当我'计算'最低级别时,我正在修改字符串.

所以...(5 + 5)*3

会变成10*3

然后评估为30

但它感觉"错了".

我希望这有助于澄清事情.我肯定会查看提供的链接.

.net math parsing

9
推荐指数
4
解决办法
1万
查看次数

条件字符串解析器在Java API中?

我想解决以下condtion字符串.因为我想在我的项目中支持动态条件.

a != 0 && b > 5
Run Code Online (Sandbox Code Playgroud)

我的预期计划是

public boolean resolve() {
    String condition = "a != 0 && b > 5";
    Map<String, Object> paramMap = new HashMap<String, Object>;
    paramMap.put("a", 2);
    paramMap.put("b", 6);
    boolean result = ConditionResolver.resolve(condition, paramMap);
    if(result) {
        //do something
    }
} 
Run Code Online (Sandbox Code Playgroud)

更新:

我不是要解决数学等式,如下所示

((a + b) * y) /x
Run Code Online (Sandbox Code Playgroud)

java

5
推荐指数
1
解决办法
409
查看次数

Java类型从String转换为Integer

任何人都可以帮助我解决这个问题

String expr ="1.3*60";
//Integer xx=Integer.valueOf();
int i = Integer.parseInt(expr);
System.out.println("xx "+i);
Run Code Online (Sandbox Code Playgroud)

当我编译它时它显示数字格式异常,我在java的初级阶段,所以请帮我解决这个问题,谢谢你

java

0
推荐指数
1
解决办法
3659
查看次数

自定义数学函数与提供的数学函数?

我基本上是在制作一个Java程序,它必须非常快速地运行大量计算(每帧,目标是至少30 f/s).这些将主要是三角函数和幂函数.我问的问题是:哪个更快:使用已经提供的Java Math函数?或者编写我自己的函数来运行?

java math trigonometry calculator exponent

0
推荐指数
1
解决办法
353
查看次数