Làm cách nào để chuyển đổi đối tượng String
thành đối tượng Boolean
?Làm thế nào để chuyển đổi đối tượng String thành đối tượng Boolean?
Trả lời
Try (tùy thuộc vào loại kết quả mà bạn muốn):
Boolean boolean1 = Boolean.valueOf("true");
boolean boolean2 = Boolean.parseBoolean("true");
Ưu điểm:
- Boolean: điều này không tạo ra các trường hợp mới của Boolean, vì vậy hiệu suất tốt hơn (và ít garbage- bộ sưu tập). Nó reuses hai trường hợp của
Boolean.TRUE
hoặcBoolean.FALSE
. - boolean: không cần phiên bản nào, bạn sử dụng kiểu nguyên thủy.
Tài liệu chính thức nằm trong số Javadoc.
CẬP NHẬT:
autoboxing cũng có thể được sử dụng, nhưng nó có một chi phí hiệu quả.
Tôi đề nghị sử dụng nó chỉ khi bạn sẽ phải tự đúc, chứ không phải khi diễn viên có thể tránh được.
sẽ không gán Boolean.valueOf cho boolaen2 được tự động bỏ hộp không? Tôi không thấy sự khác biệt với parseBoolean ở đây. –
Vấn đề lớn nhất là Boolean sẽ không ngoại lệ khi nó nhìn thấy một cái gì đó nó không nên chấp nhận. Nó sẽ trả về true cho bất cứ thứ gì mà nó thấy là "true" và sẽ trả về false cho * mọi thứ khác *. Nếu bạn đang cố gắng thực thi khớp một chuỗi với giá trị boolean thích hợp, bạn sẽ phải thêm logic bổ sung để bắt các trường hợp bất hợp pháp theo cách thủ công. –
nếu tôi sử dụng 'boolean boolean2 = Boolean.valueOf (" true ");' – vipin8169
Boolean b = Boolean.valueOf(string);
Giá trị của b
là true nếu chuỗi không phải là một giá trị và bằng true
(bỏ qua trường hợp).
Bạn phải cẩn thận khi sử dụng Boolean.valueOf (string) hoặc Boolean.parseBoolean (string). Lý do cho điều này là các phương thức sẽ luôn trả về false nếu String không bằng "true" (trường hợp bị bỏ qua).
Ví dụ:
Boolean.valueOf("YES") -> false
Bởi vì hành vi mà tôi muốn giới thiệu thêm một số cơ chế để đảm bảo rằng các chuỗi cần được dịch sang một Boolean sau một định dạng cụ thể.
Ví dụ:
if (string.equalsIgnoreCase("true") || string.equalsIgnoreCase("false")) {
Boolean.valueOf(string)
// do something
} else {
// throw some exception
}
Đây là ví dụ tốt nhất mà tôi đã nhìn thấy và những gì cần phải được thực hiện trong kiểu Boolean để bắt đầu. Việc ném một ngoại lệ cho giá trị Boolean không hợp lệ là rất quan trọng đối với nhiều ứng dụng. –
Không có điều đó không hoàn toàn đúng. ở đây là việc thực hiện cơ bản của parseBoolean public static boolean parseBoolean (String s) { return ((s! = Null) && s.equalsIgnoreCase ("true")); } – electricalbah
Bên cạnh câu trả lời tuyệt vời của KLE, chúng tôi cũng có thể làm một cái gì đó linh hoạt hơn:
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");
(lấy cảm hứng từ câu trả lời của zlajo ... :-))
boolean b = string.equalsIgnoreCase("true");
Ghé thăm http://msdn.microsoft.com/en-us/library/system.boolean.parse.aspx
Điều này sẽ cung cấp cho bạn một ý tưởng về những việc cần làm.
Đây là những gì tôi nhận được từ các Java documentation:
Phương pháp chi tiết
parseBoolean
public static boolean parseBoolean(String s)
phân tích các tham số chuỗi như một boolean. Boolean trả về đại diện cho giá trị true nếu đối số chuỗi không phải là
null
và bằng nhau, bỏ qua trường hợp, với chuỗi "true
".Tham số:
s
- String chứa các đại diện boolean để được phân tíchReturns: boolean đại diện bởi các đối số chuỗi
Từ: 1,5
Mặc dù văn bản của câu hỏi không rõ ràng, đây là câu hỏi về Java. Ít nhất nó được gắn thẻ theo cách đó. Câu trả lời này có thể gây nhầm lẫn cho mọi người. –
Đây là cách tôi đã làm nó:
"1##true".contains(string)
Đối với trường hợp của tôi chủ yếu là 1 hoặc đúng. Tôi sử dụng băm như bộ chia.
bạn có thể trực tiếp đặt giá trị boolean tương đương với bất kỳ chuỗi bởi hệ thống lớp và truy cập nó bất cứ nơi nào ..
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
Để có được giá trị boolean của một String, thử điều này:
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.
}
}
Nếu có lỗi, nó sẽ trả về null. Ví dụ:
toBoolean("true"); // Returns true
toBoolean("tr.u;e"); // Returns null
Bạn đã thử cái này chưa? :) 'parseBoolean (String s)' không ném một ngoại lệ, theo Javadoc. – 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.");
}
cách của tôi để chuyển đổi chuỗi để 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));
}
Kết quả:
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 là gì? –
org.apache.commons.lang3.BooleanUtils là từ API của Apache commons Lang. – Dhana
Tại sao không sử dụng một biểu thức chính quy?
public static boolean toBoolean(String target)
{
if(target == null) return false;
return target.matches("(?i:^(1|true|yes|oui|vrai|y)$)");
}
Vâng, như bây giờ trong tháng 1 năm 2018, cách tốt nhất cho việc này là sử dụng apache's BooleanUtils.toBoolean
.
Điều này sẽ chuyển đổi bất kỳ chuỗi như boolean thành boolean, ví dụ: Y, vâng, đúng, N, không, sai, v.v.
Thực sự tiện dụng!
- 1. Làm thế nào để chuyển đổi một đối tượng String thành một đối tượng Hash?
- 2. Đối tượng chuỗi thành Boolean
- 3. Làm thế nào để chuyển đối tượng sang boolean?
- 4. Java: Làm thế nào để chuyển đổi một đối tượng File thành một đối tượng String trong java?
- 5. Chuyển đổi đối tượng XMLDocument thành String trong Javascript
- 6. Chuyển đổi đối tượng XmlDocument thành đối tượng XmlNode - C#?
- 7. Chuyển đổi chuỗi thành đối tượng datetime.time
- 8. Làm thế nào để chuyển đổi ma trận đối xứng thành đối tượng "dist"?
- 9. Chuyển đổi đối tượng thành enum C#
- 10. Chuyển đổi chuỗi thành đối tượng JSON
- 11. Có cách nào để chuyển đổi đối tượng Ember thành đối tượng javascript đơn giản không?
- 12. Powershell: Chuyển đổi đối tượng thành chuỗi
- 13. Chuyển đổi đối tượng time_t thành NSDate?
- 14. chuyển đổi đối tượng Ngày thành TimeWithZone
- 15. Làm thế nào để chuyển đổi một chuỗi thành một đối tượng BinaryExpression?
- 16. Android- làm thế nào tôi có thể chuyển đối tượng android.net.Uri thành đối tượng java.net.URI?
- 17. Làm cách nào để chuyển đổi đối tượng WriteableBitmap sang đối tượng BitmapImage trong WPF
- 18. Làm thế nào để chuyển đổi đối tượng DateTime thành dd/mm/yyyy trong C#?
- 19. Làm thế nào để chuyển đổi đúng Danh sách các đối tượng cụ thể thành Gson?
- 20. LINQ: Làm thế nào để chuyển đổi đối tượng phân cấp lồng nhau để làm phẳng đối tượng
- 21. Chuyển đổi đối tượng để std :: unique_ptr
- 22. Làm thế nào để chuyển đổi đối tượng thành mảng để lấy dữ liệu?
- 23. Làm thế nào để chuyển đổi một đối tượng java.sql.Date thành một GregorianCalendar?
- 24. Làm thế nào để chuyển đổi ActiveSupport :: SafeBuffer thành String?
- 25. Làm thế nào để chuyển đổi danh sách các đối tượng thành danh sách giao diện?
- 26. Mẫu chuyển đổi đối tượng
- 27. Chuyển đổi bất kỳ đối tượng nào thành một byte []
- 28. Cách lấy System.IO.Stream từ đối tượng String
- 29. Chuyển đổi đối tượng Document để byte []
- 30. Làm thế nào để chuyển đổi chuỗi thành đối tượng Thời gian trong Java?
Giá trị của chuỗi là gì? –
Kỳ vọng của bạn về việc chuỗi nên được chuyển đổi thành boolean như thế nào? –
myvartypeboolean = !! valuetoconvert –