1
akiakiseofficial 2019 年 4 月 15 日 via iPhone
据我所知没有,但是你可以搜一搜 中缀表达式转后缀表达式 和 后缀表达式求解。
|
2
cnzjl 2019 年 4 月 15 日
String s = Integer.toString((1+2*3 )-10/2);
|
3
AlisaDestiny 2019 年 4 月 15 日 |
4
chocotan 2019 年 4 月 15 日 MathParser.org-mXparser
|
5
lihongjie0209 2019 年 4 月 15 日 直接调用 JavaScript 执行引擎?
|
6
sigup 2019 年 4 月 15 日
```java
ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getEngineByName("JavaScript"); System.out.println(engine.eval("(1+2*3)-10/2")); ``` 不过要做好校验,否则就是后门了 |
7
hoosin 2019 年 4 月 15 日
@lihongjie0209 JavaScript eval 有安全问题,所以约等于废弃了
|
8
HuHui 2019 年 4 月 15 日 via Android
jexl 完全满足
|
9
loveCoding 2019 年 4 月 15 日
看看这个库
org.apache.commons:commons-jexl3 |
10
loveCoding 2019 年 4 月 15 日
@HuHui 没看到你已经发了
|
11
lihongjie0209 2019 年 4 月 15 日
|
12
lihongjie0209 2019 年 4 月 15 日
@hoosin 或者是内嵌一个 groovy 引擎?
|
13
BBCCBB 2019 年 4 月 15 日
spring 的 spel 模块也可以
|
14
nekoneko 2019 年 4 月 15 日
可以考虑自己做一个做计算的方法。算法可以参考逆波兰式
|
15
rizon 2019 年 4 月 15 日
四则运算调用 js 引擎处理也是个选择,甚至通过跑 sql 来计算也是可以的。。
不过常规来说,四则运算解析工具类应该也很多吧。 |
16
rizon 2019 年 4 月 15 日
|
17
stevenbipt 2019 年 4 月 15 日 via Android 不行自己用两个栈写一个😂😂😂
|
18
jlhde123 2019 年 4 月 15 日
ANTRL4
|
19
liujan 2019 年 4 月 15 日
qlexpresss 试下,阿里出的
|
20
jinue9900 2019 年 4 月 15 日
groovy 可以只要把双引号去掉就 Ok 了
|
21
9684xtpa 2019 年 4 月 15 日
用 MVEL 也行 |
22
mrsatangel 2019 年 4 月 15 日
推一把 killme2008 的 aviator https://github.com/killme2008/aviator
|
23
13192262269 OP @AlisaDestiny #3 请问一下,你是怎样搜出来的?我百度输入“ java eval 函数”,找不到这个链接,是必须是要先翻译成英文再搜索吗?
|
24
m2276699 2019 年 4 月 17 日
sql?
|