如何把String
對象轉換爲Boolean
對象?如何將字符串對象轉換爲布爾對象?
回答
嘗試(取決於你想要什麼樣的結果類型):
Boolean boolean1 = Boolean.valueOf("true");
boolean boolean2 = Boolean.parseBoolean("true");
優勢:
- 布爾:這不會產生布爾的新實例,因此性能更好(少garbage-採集)。它重用了兩個實例
Boolean.TRUE
或Boolean.FALSE
。 - 布爾值:不需要實例,您使用原始類型。
官方文檔在Javadoc。
更新:
自動裝箱也可以使用,但它有一個性能開銷。
我建議只有當你不得不自己施放時才使用它,而不是在施放時可以避免。
不會將boolean.valueOf賦值給boolaen2自動拆箱嗎?我在這裏看不到parseBoolean的區別。 –
最大的問題是,布爾在看到不應該接受的東西時不會例外。對於任何被視爲「真實」的東西,它都會返回true,並且將爲其他所有*返回false。如果您試圖強制將字符串匹配到適當的布爾值,則必須添加額外的邏輯以手動捕獲非法案例。 –
如果我使用boolean boolean2 = Boolean.valueOf(「true」);' – vipin8169
Boolean b = Boolean.valueOf(string);
如果字符串是不是一個空和等於true
(忽略大小寫)的b
的值是正確的。
你必須使用通過Boolean.valueOf(串)或Boolean.parseBoolean(串)時要小心。其原因是,如果字符串不等於「true」(該情況被忽略),方法將始終返回false。
例如:
Boolean.valueOf("YES") -> false
正因爲如此行爲,我會建議增加一些機制,以確保應翻譯爲布爾該字符串指定的格式。
例如:
if (string.equalsIgnoreCase("true") || string.equalsIgnoreCase("false")) {
Boolean.valueOf(string)
// do something
} else {
// throw some exception
}
這是我見過的最好的例子,以及布爾類型應該以什麼開始實現。針對無效布爾值拋出異常對許多應用程序很重要。 –
不,這不完全正確。 (s)= null)&& s.equalsIgnoreCase(「true」));}};}}}這裏是parseBoolean的底層實現 public static boolean parseBoolean(String s){ return((s!= null)&& s.equalsIgnoreCase(「true」)); } – electricalbah
除了KLE的出色答卷,我們還可以使事情更加靈活:
boolean b = string.equalsIgnoreCase("true") || string.equalsIgnoreCase("t") ||
string.equalsIgnoreCase("yes") || string.equalsIgnoreCase("y") ||
string.equalsIgnoreCase("sure") || string.equalsIgnoreCase("aye") ||
string.equalsIgnoreCase("oui") || string.equalsIgnoreCase("vrai");
(由zlajo的回答啓發... :-))
boolean b = string.equalsIgnoreCase("true");
參觀http://msdn.microsoft.com/en-us/library/system.boolean.parse.aspx
這會讓你知道該怎麼做。
這是我從Java documentation得到:
方法詳細信息
parseBoolean
public static boolean parseBoolean(String s)
將字符串參數分析爲boolean值。返回的布爾值表示如果字符串參數不是
null
並且與字符串「true
」相等(忽略大小寫),則值爲true。參數:
s
- 包含布爾表示的字符串進行解析返回: 1.5
:由字符串參數由於所表示的布爾
儘管問題的文本並不明確,但這是一個關於Java的問題。至少它是這樣標記的。這個答案可能會讓人迷惑。 –
這是我做的:
"1##true".contains(string)
對於我來說,主要是1或真。我使用散列作爲分隔符。
可以直接通過 系統類和訪問它的任何地方布爾值相當於設置爲任何字符串..
System.setProperty("n","false");
System.setProperty("y","true");
System.setProperty("yes","true");
System.setProperty("no","false");
System.out.println(Boolean.getBoolean("n")); //false
System.out.println(Boolean.getBoolean("y")); //true
System.out.println(Boolean.getBoolean("no")); //false
System.out.println(Boolean.getBoolean("yes")); //true
得到一個字符串的布爾值,試試這個:
public boolean toBoolean(String s) {
try {
return Boolean.parseBoolean(s); // Successfully converted String to boolean
} catch(Exception e) {
return null; // There was some error, so return null.
}
}
如果有錯誤,它將返回null。 例子:
toBoolean("true"); // Returns true
toBoolean("tr.u;e"); // Returns null
你有試過嗎? :)根據Javadoc的說法,'parseBoolean(String s)'不會引發異常。 – rapt
public static boolean stringToBool(String s) {
s = s.toLowerCase();
Set<String> trueSet = new HashSet<String>(Arrays.asList("1", "true", "yes"));
Set<String> falseSet = new HashSet<String>(Arrays.asList("0", "false", "no"));
if (trueSet.contains(s))
return true;
if (falseSet.contains(s))
return false;
throw new IllegalArgumentException(s + " is not a boolean.");
}
我的方式將字符串轉換爲布爾值。
String[] values= new String[]{"y","Y","n","N","Yes","YES","yes","no","No","NO","true","false","True","False","TRUE","FALSE",null};
for(String booleanStr : values){
System.out.println("Str ="+ booleanStr +": boolean =" +BooleanUtils.toBoolean(booleanStr));
}
結果:
Str =N: boolean =false
Str =Yes: boolean =true
Str =YES: boolean =true
Str =yes: boolean =true
Str =no: boolean =false
Str =No: boolean =false
Str =NO: boolean =false
Str =true: boolean =true
Str =false: boolean =false
Str =True: boolean =true
Str =False: boolean =false
Str =TRUE: boolean =true
Str =FALSE: boolean =false
Str =null: boolean =false
什麼是BooleanUtils? –
org.apache.commons.lang3.BooleanUtils來自Apache commons Lang API。 – Dhana
爲什麼不使用正則表達式?
public static boolean toBoolean(String target)
{
if(target == null) return false;
return target.matches("(?i:^(1|true|yes|oui|vrai|y)$)");
}
嗯,現在一月,2018年,這種情況的最好方法是使用Apache的BooleanUtils.toBoolean
。
這會將任何布爾類型的字符串轉換爲布爾值,例如,是,是,是,否,否,假等。
真的很方便!
- 1. 如何將布爾表達式字符串轉換爲對象?
- 2. 轉換「字符串對象」爲對象
- 3. 如何將對象字符串轉換爲對象Guid在C#
- 4. 如何將字符串對象轉換爲字符串池對象?
- 5. 將對象轉換爲布爾值[] []
- 6. 如何將字符串對象轉換爲字符串[]?
- 7. 將字符串轉換爲gson對象
- 8. 將字符串對象轉換爲istringstream
- 9. 將python'type'對象轉換爲字符串
- 10. 將字符串轉換爲JSON對象
- 11. 將字符串轉換爲對象Python
- 12. 將字符串轉換爲JS對象
- 13. 將對象轉換爲字符串
- 14. 將字符串轉換爲對象
- 15. VBScript將對象轉換爲字符串?
- 16. 將對象轉換爲字符串(java)
- 17. 將XML對象轉換爲字符串
- 18. 將對象[,]轉換爲字符串
- 19. 將對象轉換爲字符串
- 20. 將字符串轉換爲DateTime對象
- 21. 將字符串轉換爲json對象
- 22. 將字符串轉換爲datetime.time對象
- 23. 將字符串轉換爲NSDate對象
- 24. Jquery將字符串轉換爲對象
- 25. 將字符串轉換爲JavaScript對象
- 26. 將JSON對象轉換爲字符串
- 27. 將字符串轉換爲對象
- 28. 將json對象轉換爲字符串
- 29. 將字符串轉換爲Moment對象
- 30. 將類對象轉換爲字符串
字符串的值是什麼? –
你對字符串應該如何轉換爲布爾值的期望是什麼? –
myvartypeboolean = !! valuetoconvert – 2013-09-26 05:31:20