How to convert String object to Boolean Object?

JavaStringBoolean

Java Problem Overview


How to convert String object to Boolean object?

Java Solutions


Solution 1 - Java

Try (depending on what result type you want):

Boolean boolean1 = Boolean.valueOf("true");
boolean boolean2 = Boolean.parseBoolean("true");

Advantage:

  • Boolean: this does not create new instances of Boolean, so performance is better (and less garbage-collection). It reuses the two instances of either Boolean.TRUE or Boolean.FALSE.
  • boolean: no instance is needed, you use the primitive type.

The official documentation is in the Javadoc.


UPDATED:

Autoboxing could also be used, but it has a performance cost.
I suggest to use it only when you would have to cast yourself, not when the cast is avoidable.

Solution 2 - Java

You have to be carefull when using Boolean.valueOf(string) or Boolean.parseBoolean(string). The reason for this is that the methods will always return false if the String is not equal to "true" (the case is ignored).

For example:

Boolean.valueOf("YES") -> false

Because of that behaviour I would recommend to add some mechanism to ensure that the string which should be translated to a Boolean follows a specified format.

For instance:

if (string.equalsIgnoreCase("true") || string.equalsIgnoreCase("false")) {
    Boolean.valueOf(string)
    // do something   
} else {
    // throw some exception
}

Solution 3 - Java

Boolean b = Boolean.valueOf(string);

The value of b is true if the string is not a null and equal to true (ignoring case).

Solution 4 - Java

Beside the excellent answer of KLE, we can also make something more flexible:

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");

(inspired by zlajo's answer... :-))

Solution 5 - Java

boolean b = string.equalsIgnoreCase("true");

Solution 6 - Java

Well, as now in Jan, 2018, the best way for this is to use apache's BooleanUtils.toBoolean.

This will convert any boolean like string to boolean, e.g. Y, yes, true, N, no, false, etc.

Really handy!

Solution 7 - Java

Use the Apache Commons library BooleanUtils class:

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));
}

Result:

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

Solution 8 - Java

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.");
    }

My way to convert string to boolean.

Solution 9 - Java

This is how I did it:

"1##true".contains( string )

For my case is mostly either 1 or true. I use hashes as dividers.

Solution 10 - Java

Why not use a regular expression ?

public static boolean toBoolean( String target )
{
    if( target == null ) return false;
    return target.matches( "(?i:^(1|true|yes|oui|vrai|y)$)" );
}

Solution 11 - Java

We created soyuz-to library to simplify this problem (convert X to Y). It's just a set of SO answers for similar questions. This might be strange to use the library for such a simple problem, but it really helps in a lot of similar cases.

import io.thedocs.soyuz.to;

Boolean aBoolean = to.Boolean("true");

Please check it - it's very simple and has a lot of other useful features

Solution 12 - Java

boolean status=false;
if (variable.equalsIgnoreCase("true")) {
   status=true;  
   }

This is supported only if the string is 'true' (not case-sensitive). Later you can play with the status variable.

Solution 13 - Java

To get the boolean value of a String, try this:

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.
    }
}

If there is an error, it will return null. Example:

toBoolean("true"); // Returns true
toBoolean("tr.u;e"); // Returns null

Solution 14 - Java

Visit <http://msdn.microsoft.com/en-us/library/system.boolean.parse.aspx>

This will give you an idea of what to do.

This is what I get from the Java documentation:

> Method Detail > > parseBoolean > > public static boolean parseBoolean(String s) > > Parses the string argument as a boolean. The boolean returned represents the value true if the string argument is not null and is equal, ignoring case, to the string "true". > > Parameters: > > s - the String containing the boolean representation to be parsed > > Returns: the boolean represented by the string argument > > Since: > 1.5

Solution 15 - Java

you can directly set boolean value equivalent to any string by System class and access it anywhere..

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSureshView Question on Stackoverflow
Solution 1 - JavaKLEView Answer on Stackoverflow
Solution 2 - JavazlajoView Answer on Stackoverflow
Solution 3 - JavaCJSView Answer on Stackoverflow
Solution 4 - JavaPhiLhoView Answer on Stackoverflow
Solution 5 - JavaZedView Answer on Stackoverflow
Solution 6 - Javadavid30xieView Answer on Stackoverflow
Solution 7 - JavaDhanaView Answer on Stackoverflow
Solution 8 - JavaAechoLiuView Answer on Stackoverflow
Solution 9 - JavaTomislav BorasView Answer on Stackoverflow
Solution 10 - JavaChrstpslnView Answer on Stackoverflow
Solution 11 - Javafedor.belovView Answer on Stackoverflow
Solution 12 - JavaAbdul HadeeView Answer on Stackoverflow
Solution 13 - Javauser5162630View Answer on Stackoverflow
Solution 14 - JavaVesco ProView Answer on Stackoverflow
Solution 15 - JavaPrateek SinghView Answer on Stackoverflow