解析布爾型String的實用方法是什麼?通過適當我的意思是java.lang.Boolean中解析Java中的「true」/「false」
"true" => true
"false" => false
"foo" => error
解析方法是狡猾的 - 他們不區分「富」「假」。 Java庫(或Guava或Commons Lang)中的其他內容是否正確執行?
是的,這只是一對夫婦,我只是不寫任何線,我不應該。 :-)
解析布爾型String的實用方法是什麼?通過適當我的意思是java.lang.Boolean中解析Java中的「true」/「false」
"true" => true
"false" => false
"foo" => error
解析方法是狡猾的 - 他們不區分「富」「假」。 Java庫(或Guava或Commons Lang)中的其他內容是否正確執行?
是的,這只是一對夫婦,我只是不寫任何線,我不應該。 :-)
退房布爾utils的形式阿帕奇百科全書:
一個字符串轉換爲布爾 如果沒有匹配 發現拋出異常。
如果沒有匹配,則返回null。
BooleanUtils.toBoolean( 「真」, 「真」, 「假」)=真
BooleanUtils.toBoolean( 「假」, 「真」, 「假」)=假
感謝指向BooleanUtils的指針。我認爲[toBooleanObject(「true」)](http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/BooleanUtils.html#toBooleanObject(java.lang.String))適合法案。它不會拋出一個錯誤,但它返回null,它仍然會解決問題(拆箱時)。 – Iain
怎麼樣很簡單:
編輯:還是我錯過了點...
boolean isTrue (String s) {
return theString.toLowerCase().equals("true");
}
可能是交換比較的一個好主意。如果s爲空,這將拋出一個NPE。 – Kal
OP只需要「真」和「假」作爲有效選項。在你的情況下,任何字符串都是有效的選項。 –
老實說,這個問題很可笑。是的,有一些方法可以構建它(布爾應用程序API Apache Fan提到)。但是,你要以一種奇特的方式去做某件事,其代價是A)生產力(停止浪費你的時間,寫下三行代碼)和B)可讀性。什麼是更易於閱讀:
if("true".equals(myString))
或
if(BooleanUtils.toBoolean(myString, "true", "false"))
我會去每一次的第一個。更好的是,使用IgnoreCase選項進行字符串比較。 toBoolean區分大小寫,所以「True」實際上會引發異常。真棒!這非常有用!
-1爲秸稈比較;選擇是在BooleanUtils調用之間還是類似於@ Kal的示例。也不漂亮。兩者都完成了工作。如你所說,這不是最嚴重的問題。 :) – Iain
有一點重用代碼/庫只是太過分了。這是其中的一次。 – Coeffect
我想你必須寫幾行。 :) –
不確定存在任何不匹配時會拋出錯誤的東西。與編寫自己的Booleans.parse((String)str,(boolean)strictMatch)相比,您可能會花更多時間尋找解決方案。 –