gpt4 book ai didi

java - 当输入中存在不同形式的参数时分割字符串

转载 作者:行者123 更新时间:2023-12-02 10:07:17 24 4
gpt4 key购买 nike

我是 Java 新手,希望在这里得到一些帮助。我有一个像这样的字符串,

`( ( t1.INDEX BETWEEN  100 and 200 ) OR ( t1.INDEX BETWEEN  'AAA' and 'BBB' ) AND ( t1.INDEX IN('AAA','BBB') ) AND ( t1.INDEX = 'AAA' OR t1.INDEX = 'BBB' ) OR ( t1.INDEX=123 ) )`

我想将其分成子表达式,如下所示,

`Expression = ( t1.INDEX BETWEEN  100 and 200 )
Operator = OR
Expression = ( t1.INDEX BETWEEN 'AAA' and 'BBB' )
Operator = AND
Expression = ( t1.INDEX IN('AAA','BBB') )
Operator = AND
Expression = ( t1.INDEX = 'AAA' OR t1.INDEX = 'BBB' )
Operator = OR
Expression = ( t1.INDEX=123 )`

在 java 中执行此操作的最佳方法是什么?我经历了Multi-level String split但它不会处理括号。

最佳答案

最好的方法是使用解析器,例如 ANTLRJavaCC .

您还可以使用正则表达式使用括​​号作为表达式分隔符来拆分它,但这是一些有缺陷且麻烦的解决方案,特别是如果您的语法比您显示的复杂得多。

关于java - 当输入中存在不同形式的参数时分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55255391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com