1
7
|
2
1
如果唯一的运算符是
对于更复杂的表达式,我发现 this library 就为了这个。 但不知道它有多高效。 |
3
0
你需要一个小的布尔表达式语法。一点递归解析就可以了。 如果您不知道如何编写这样的解析器,可以使用javacc或类似的工具。 |
4
0
有可用的语法分析器,您可以为其定义语法。 但是,如果您只得到和&as运算符,以及true和false作为值,那么您可以通过实现一个非常简单的有限状态机来轻松地做到这一点: 1.)将字符串拆分为令牌 2.)使用boolean.parse boolean(token)分析最左边的值,并在某个实例变量(您的状态)中保护它的值。 3.)使用给定的运算符将实例变量与下一个布尔标记组合。 4.)重复步骤3,直到完成整个字符串。 虽然我没有彻底测试过,但这似乎有效:)
这应该会给您一个正确解析的值,但是如果您允许使用方括号,它会变得更复杂一点;) 玩得开心,看看这里的理论 Finite-state_machine |