【问题标题】:Simplification of Boolean Expression in javajava中布尔表达式的简化
【发布时间】:2011-02-24 11:47:45
【问题描述】:

java中是否有任何工具或库可以简化布尔表达式公式并给出结果。

当输入是这样的时候,

exp = (a || a' ) result = 1

exp = ( a || b ) && ( a' || b )  result = b (after simplification)

表达式可以比上面的更大或更复杂。

【问题讨论】:

  • a' 你的意思是“不是”吗?在 Java 中应该是 !a。顺便说一句,( a || b ) && ( !a || b ) 的计算结果为 false,而不是 b。你是说( a && b ) || ( !a && b ) 吗?
  • 这与编程无关 - 在我看来,您正在寻找可以简化 逻辑 表达式的应用程序
  • 是的安德烈亚斯,当我给出我的表达方式时,我完全试图找到一个图书馆,((a && b) || (c || d') && (d' && a))例如,library/tool 将给出这个表达式的简化和更小的版本。当然如果表达式适用就可以简化。

标签: java boolean-expression simplification


【解决方案1】:

IntelliJ 支持"intentions",它允许您在编辑器中简化布尔表达式。或者,PMD 可以为您报告此类错误(请参阅boolean rules

【讨论】:

  • 我喜欢 IntelliJ 可以检查链式 if 语句,例如 if (a == null || b == null) { } else if (a != null && b != null) { } 它会发出警告第二个 if 条件始终为真,并提供为您删除它。
  • 感谢 Jeff Foster,但这些工具中没有一个不能满足简化逻辑布尔表达式的期望。他们是源代码优化器,我对代码不感兴趣,我只是想找到一个工具/库或可以简化逻辑布尔表达式的代码。
猜你喜欢
  • 2016-07-13
  • 2016-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多