Boolean.parseBoolean("1") = false...?

Java

Java Problem Overview


sorry to be a pain... I have: HashMap<String, String> o

o.get('uses_votes'); // "1"

Yet...

Boolean.parseBoolean(o.get('uses_votes')); // "false"

I'm guessing that ....parseBoolean doesn't accept the standard 0 = false 1 = true?

Am I doing something wrong or will I have to wrap my code in:

boolean uses_votes = false;
if(o.get('uses_votes').equals("1")) {
    uses_votes = true;
}

Thanks

Java Solutions


Solution 1 - Java

It accepts only a string value of "true" to represent boolean true. Best what you can do is

boolean uses_votes = "1".equals(o.get("uses_votes"));

Or if the Map actually represents an "entitiy", I think a Javabean is way much better. Or if it represents configuration settings, you may want to take a look into Apache Commons Configuration.

Solution 2 - Java

I have a small utility function to convert all possible values into Boolean.

private boolean convertToBoolean(String value) {
	boolean returnValue = false;
	if ("1".equalsIgnoreCase(value) || "yes".equalsIgnoreCase(value) || 
        "true".equalsIgnoreCase(value) || "on".equalsIgnoreCase(value))
		returnValue = true;
	return returnValue;
}

Solution 3 - Java

According to the documentation (emphasis mine):

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

Solution 4 - Java

If you're trying to get C's behavior (0 == false and everything else is true), you could do this:

boolean uses_votes = Integer.parseInt(o.get("uses_votes")) != 0;

Solution 5 - Java

Thomas, I think your wrapper code, or just the condition itself, is the cleanest way to do what you want to do in java, which is convert "1" to the Boolean True value. Actually, comparing to "0" and taking the inverse would match the C behavior of treating 0 as false and everything else as true.

Boolean intStringToBoolean(numericBooleanValueString) {
  return !"0".equals(numericBooleanValueString);
}

Solution 6 - Java

I know this is an old thread, but what about borrowing from C syntax:

(o.get('uses_votes')).equals("1") ? true : false;

Solution 7 - Java

As a note ,
for those who need to have null value for things other than "true" or "false" strings , you can use the function below

public Boolean tryParseBoolean(String inputBoolean)
{    
    if(!inputBoolean.equals("true")&&!inputBoolean.equals("false")) return null;
    return Boolean.valueOf(inputBoolean);
}

Solution 8 - Java

Returns true if comes 'y', '1', 'true', 'on'or whatever you add in similar way

boolean getValue(String value) {
  return ("Y".equals(value.toUpperCase()) 
      || "1".equals(value.toUpperCase())
      || "TRUE".equals(value.toUpperCase())
      || "ON".equals(value.toUpperCase()) 
     );
}

Solution 9 - Java

Java is strongly typed. 0 and 1 are numbers, which is a different type than a boolean. A number will never be equal to a boolean.

Solution 10 - Java

How about this?

boolean uses_votes =
  ( "|1|yes|on|true|"
      .indexOf("|"+o.get("uses_votes").toLowerCase()+"|")
      > -1
  );

Solution 11 - Java

I had the same question and i solved it with that:

Boolean use_vote = o.get('uses_votes').equals("1") ? true : false;

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
QuestionThomas ClaysonView Question on Stackoverflow
Solution 1 - JavaBalusCView Answer on Stackoverflow
Solution 2 - JavaSaqibView Answer on Stackoverflow
Solution 3 - JavamellamokbView Answer on Stackoverflow
Solution 4 - JavaBrendan LongView Answer on Stackoverflow
Solution 5 - Javaryan0View Answer on Stackoverflow
Solution 6 - JavaAndroidDevView Answer on Stackoverflow
Solution 7 - JavakommradHomerView Answer on Stackoverflow
Solution 8 - JavaYaroView Answer on Stackoverflow
Solution 9 - JavaSteve KuoView Answer on Stackoverflow
Solution 10 - JavaMax SpringView Answer on Stackoverflow
Solution 11 - JavaThéo MouliaView Answer on Stackoverflow