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