Cum de a converti "String" obiect "Boolean" obiect?
Încerca (în funcție de ce tip de rezultat vrei):
Boolean boolean1 = Boolean.valueOf("true");
boolean boolean2 = Boolean.parseBoolean("true");
Avantaj:
Boolean.ADEVĂRAT " sau " Boolean.FALSE
.Documentația oficială este în Javadoc.
ACTUALIZAT:
Autoboxing ar putea fi, de asemenea, folosit, dar are un cost de performanță. Îți sugerez să-l folosească numai atunci când ar trebui să te pui, nu atunci când exprimate este de evitat.
Trebuie să fii atent atunci când se utilizează Boolean.valueOf(string) sau Boolean.parseBoolean(string). Motivul pentru aceasta este faptul că metodele mereu se va întoarce false dacă Șirul nu este egal cu "adevărat" (caz este ignorat).
De exemplu:
Boolean.valueOf("YES") -> false
Din aceasta cauza comportamentului mi-ar recomanda pentru a adăuga un mecanism pentru a se asigura că șirul care ar trebui să fie tradus de un Boolean urmează un format specificat.
De exemplu:
if (string.equalsIgnoreCase("true") || string.equalsIgnoreCase("false")) {
Boolean.valueOf(string)
// do something
} else {
// throw some exception
}
Pe lângă răspunsul excelent de KLE, putem face, de asemenea, ceva mai flexibil:
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");
(inspirat de zlajo's a raspuns... :-))
Ei bine, ca acum, în ianuarie, în 2018, cea mai bună cale pentru aceasta este de a folosi apache's BooleanUtils.toBoolean
.
Aceasta va converti orice boolean ca șirul să boolean, de exemplu Y, da, adevărat, N, nu, fals, etc.
Foarte la îndemână!
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.");
}
Felul meu de a converti șir să 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));
}
Rezultat:
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
Am creat soyuz-a biblioteca pentru a simplifica această problemă (converti X-Y). L's doar un set de ASTFEL de răspunsuri pentru întrebări similare. Acest lucru ar putea fi ciudat de a folosi biblioteca pentru astfel de o problemă simplă, dar este într-adevăr ajută într-o mulțime de cazuri similare.
`` import io.thedocs.soyuz.a;
Boolean aBoolean = a.Boolean("adevărat"); ``
Vă rugăm să verificați - l's foarte simplu și are o mulțime de alte caracteristici utile
Pentru a obține valoarea booleană de un Șir de caractere, încercați acest lucru:
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.
}
}
Dacă există o eroare, se va returna null. Exemplu:
toBoolean("true"); // Returns true
toBoolean("tr.u;e"); // Returns null
puteți seta direct boolean valoare echivalentă cu orice șir de Sistem de clasă și accesați-l de oriunde..
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
Vizita http://msdn.microsoft.com/en-us/library/system.boolean.parse.aspx
Acest lucru vă va oferi o idee de ce să fac.
Asta este ceea ce primesc de la Java documentation:
Metoda Detaliu
parseBoolean
public static boolean parseBoolean(String s)`
Analizează șirul argument ca un boolean. Boolean revenit reprezintă valoarea true dacă șirul argument nu este
null
și este egală, ignorând caz, la string " "true" ".Parametri:
" s " - Șir care conține boolean reprezentare a fi analizat
se Întoarce: boolean reprezentat de șirul argument
Începând cu: 1.5