Как сменить String
объект до Boolean
объект?Как преобразовать объект String в Boolean Object?
ответ
Try (в зависимости от того, какой тип результата вы хотите):
Boolean boolean1 = Boolean.valueOf("true");
boolean boolean2 = Boolean.parseBoolean("true");
Преимущество:
- Boolean: это не создает новые экземпляры Boolean, так что производительность лучше (и менее garbage- коллекция). Он повторно использует два экземпляра либо
Boolean.TRUE
, либоBoolean.FALSE
. - boolean: экземпляр не требуется, вы используете примитивный тип.
Официальная документация находится в Javadoc.
ОБНОВЛЕНО:
Autoboxing также может быть использован, но он имеет стоимость исполнения.
Я предлагаю использовать его только тогда, когда вам придется бросать себя, а не когда бросок можно избежать.
не будет присвоить Boolean.valueOf для boolaen2 быть автоматически-unboxed в любом случае? Я не вижу разницы в parseBoolean здесь. –
Самая большая проблема заключается в том, что Boolean не будет исключать, когда он видит что-то, чего он не должен принимать. Он вернет true для всего, что он видит как «истинный», и вернет false для * всего остального *. Если вы пытаетесь привести соответствие строки к соответствующему логическому значению, вам придется добавить дополнительную логику, чтобы вручную вылавливать незаконные случаи. –
Что делать, если я использую 'boolean boolean2 = Boolean.valueOf (" true ");' – vipin8169
Boolean b = Boolean.valueOf(string);
Значение b
верно, если строка не является пустой и равной true
(без учета случае).
Вы должны быть осторожны при использовании Boolean.valueOf (строка) или Boolean.parseBoolean (строка). Причина этого в том, что методы всегда будут возвращать false, если строка не равна «true» (случай игнорируется).
Например:
Boolean.valueOf("YES") -> false
Из-за такого поведения я бы рекомендовал добавить некоторый механизм для того, чтобы строка, которая должна быть переведена на булевой следует заданный формат.
Например:
if (string.equalsIgnoreCase("true") || string.equalsIgnoreCase("false")) {
Boolean.valueOf(string)
// do something
} else {
// throw some exception
}
Это лучший пример, который я видел и что должно было быть реализовано в булевом типе для начала. Выброс исключения для недействительного логического значения важен для многих приложений. –
Нет, это не совсем так. вот базовая реализация 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 представляет значение true, если строковый аргумент не равен
null
и равен, игнорируя регистр, строке «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
Вы пробовали это? :) 'parseBoolean (String s)' не генерирует исключения, согласно 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.");
}
Мой способ преобразовать строку в булево.
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 - это Apo 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
.
Это преобразование любой логической строки, такой как строка, булево, например. Y, да, истина, N, нет, ложная и т. Д.
Действительно удобно!
- 1. Как преобразовать Object [] в String []
- 2. Как преобразовать объект [] в Object [] []
- 3. Как неявно преобразовать объект Ruby в boolean
- 4. Преобразование «String Object» в Object
- 5. Как преобразовать List (Of String) в Object()?
- 6. Adobe Air: преобразовать результат sqlite [объект Object] в String?
- 7. Как преобразовать строку в объект System :: Object?
- 8. Как преобразовать объект String в объект Date?
- 9. Как преобразовать объект String в объект Hash?
- 10. Как преобразовать объект [] в String [] в Java?
- 11. Невозможно неявно преобразовать «string» в «object» error?
- 12. Как преобразовать String в Writable object в мой Hadoop Mapper
- 13. Java Boolean в Object [] []
- 14. Scala - как преобразовать объект в список [Object]
- 15. Как преобразовать Json String в объект Java?
- 16. Как преобразовать String в объект Calendar?
- 17. Как преобразовать строку JSON в объект Object Object Lite
- 18. Reactjs как преобразовать строку в объект [object Object]
- 19. Как преобразовать комплекс Json String в объект.?
- 20. Как преобразовать Json String с динамическими полями в Object?
- 21. Преобразователь String-Object
- 22. Как преобразовать объект URL в String
- 23. Как преобразовать объект Hibernate Result в String?
- 24. Как преобразовать объект в объект []
- 25. JSON Object to String
- 26. с использованием Boolean Object
- 27. DateTime Object to string
- 28. Невозможно преобразовать тип '[String: Any Object]' в ожидаемый тип 'String'
- 29. Как лить объект в boolean?
- 30. Преобразовать объект типа object {char []} в char []
Какова ценность строки? –
Каково ваше ожидание того, как строка должна быть преобразована в логическую? –
myvartypeboolean = !! valuetoconvert – 2013-09-26 05:31:20