2011-02-24 34 views
2

布爾表達式是否有在Java這簡化的布爾表達式,並給出結果的任何工具或庫。簡化在Java

當輸入是這樣的,

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

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

表達式可以比上述更大或更復雜。

+1

通過'a''你的意思是「不」?這應該是Java中的'!a'。順便說一句'(a || b)&&(!a || b)'計算爲'false',而不是'b'。你的意思是'(a && b)|| (!a && b)'? – 2011-02-24 11:51:00

+2

你確定那個佩特? – vickirk 2011-02-24 12:00:41

+1

這不是編程相關的 - 對我來說,它看起來像你正在尋找一個可以簡化*邏輯*表情 – 2011-02-24 12:13:49

回答

2

的IntelliJ支持"intentions",讓你可以簡化在編輯器中的布爾表達式。另外,PMD可以報告這幾樣對您的錯誤(見boolean rules

+0

我喜歡IntelliJ可以檢查鏈接if語句if(a == null || b == null)else if if(a!= null && b!= null){ }它警告第二個if條件永遠是真實的,並提供給你刪除它。 – 2011-02-24 12:06:48

+0

像PMD,如FindBugs的 – MeBigFatGuy 2011-02-24 12:10:49

+0

感謝傑夫 - 福斯特,但這些工具非不能滿足的期望,以簡化邏輯布爾表達式。他們是源代碼優化器,我對代碼不感興趣,我只想找到一個工具/庫或可以簡化邏輯布爾表達式的代碼。 – sctn 2011-02-24 15:09:46