【发布时间】:2021-05-03 02:06:48
【问题描述】:
我有一个 Java 字符串,其中有一个条件,例如 ((#a==1 && #b==2 || #c==3) && (#d==4))。我想取这个字符串的 NOT (!)。
输入字符串:((#a==1 && #b==2 || #c==3) && (#d==4))
预期的输出字符串:(((#a!=1 || #b!=2) && (#c!=3)) || (#d!=4))
如果我必须实现它,那么我看到的第一个挑战是正确地将括号放入字符串并根据语法对其进行标记。我不确定我该怎么做。
【问题讨论】:
-
研究使用 ANTLR 库。您可以定义自己的语法/语法,然后解析您的表达式,然后否定它。如果不进行某种解析,就没有简单的方法来回答您的问题。
-
我会建议您研究如何将表达式解析为Abstract Syntax Tree,然后可以对其进行操作。
-
多么迷人!这很乏味,但是如果你有很多语句或长语句,你可以:
-
将它们作为文本放入文件中
标签: java conditional-statements unary-operator