【问题标题】:Take NOT of Condition in Java String [closed]在 Java 字符串中取 NOT 条件 [关闭]
【发布时间】: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))

如果我必须实现它,那么我看到的第一个挑战是正确地将括号放入字符串并根据语法对其进行标记。我不确定我该怎么做。

【问题讨论】:

标签: java conditional-statements unary-operator


【解决方案1】:

如果您有许多表达式或长表达式,您可以将它们解析为文本,方法是将它们放入一个文本文件中,然后使用 Scanner 扫描它。顺便说一句,这是一个有趣的问题,很高兴你问到!

File expressions = new File(/*pathname*/);
File inverse = new File(/*pathname*/);
FileWriter fileWriter = new fileWriter(inverse);
Scanner scanner = new Scanner(expressions);

while(scanner.hasNext()){
    String str = "";
    String next = scanner.next();
    if (next.equals("=="){
        str = "!=";
    }
    else if (next.equals("!="){
        str = "==";
    }
    else if (next.equals("||"){
        str = "&&";
    }
    else if (next.equals("&&"){
        str = "||";
    }
fileWriter.write(str)
}

这几乎肯定有效,也许蒂姆提出的建议更好。 正如 Tim 所说,您的目标很可能会通过某种解析来实现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2016-04-03
    • 2013-05-12
    • 1970-01-01
    相关资源
    最近更新 更多