Course – LS – All

Get started with Spring and Spring Boot, through the Learn Spring course:

>> CHECK OUT THE COURSE

1. Overview

We often need to convert a Boolean value to a String representation in Java. For example, this can be useful for displaying values in user interfaces or writing values to a file or database.

In this quick tutorial, we’ll explore various ways of converting boolean values to strings.

2. Introduction to the Problem

Converting a boolean value to a string is a simple task in Java. But, as we know, there are two boolean types in Java: the primitive boolean and the object Boolean.

The conversions from a primitive boolean value and a Boolean object to a string are pretty similar. However, there are a few points that we ought to take into consideration.

So next, let’s start with the primitive boolean values to see how to convert them to strings.

For simplicity, we’ll use unit test assertions to verify whether the conversion results are as expected.

3. Converting a Primitive boolean Value to a String

A primitive boolean variable can carry either true or false. Therefore, we can use an if-else statement to convert it to a string. Further, in Java, the ternary operator (also called the conditional operator) is a shorthand way of writing an if-else statement.

So, let’s use the ternary operator to make the conversion code compact and readable:

boolean primitiveBoolean = true;
assertEquals("true", primitiveBoolean ? "true" : "false");
                                                           
primitiveBoolean = false;
assertEquals("false", primitiveBoolean ? "true" : "false");

The code above is pretty straightforward. As we can see, we convert the true value to the string “true” and false to “false“. This is a standard way of conversion. However, sometimes, we may want to redefine the converted strings, such as true to “YES” and false to “NO”. Then, we can simply change the strings in the ternary expression.

Of course, if we need to call the conversion many times, we can wrap it in a method. Next, let’s look at an example of converting a boolean value to a customized string:

String optionToString(String optionName, boolean optionValue) {
    return String.format("The option '%s' is %s.", optionName, optionValue ? "Enabled" : "Disabled");
}

The optionToString() method accepts a boolean option’s name and its value to build the description of the option’s status:

assertEquals("The option 'IgnoreWarnings' is Enabled.", optionToString("IgnoreWarnings", true));

4. Using the Boolean.toString() Method to Convert a Boolean Object to a String 

Now, let’s look at how to convert a Boolean variable to a string. The Boolean class provides the Boolean.toString() method to convert a Boolean to a String:

Boolean myBoolean = Boolean.TRUE;
assertEquals("true", myBoolean.toString());
                                            
myBoolean = Boolean.FALSE;
assertEquals("false", myBoolean.toString());

If we take a closer look at the Boolean.toString() method, we’ll see its implementation is exactly the same as our ternary solution:

public String toString() {
    return this.value ? "true" : "false";
}

The object Boolean is similar to the primitive one. However, apart from true and false, it can be null. Therefore, we need to make sure the Boolean variable isn’t null before we call the Boolean.toString() method. Otherwise, NullpointerException will be raised:

Boolean nullBoolean = null;
assertThrows(NullPointerException.class, () -> nullBoolean.toString());

5. Using the String.valueOf() Method to Convert a Boolean Object to a String 

We’ve seen that Boolean.toString() from the standard library can convert a Boolean variable to a string. Alternatively, we can use the valueOf() method from the String class to solve the problem:

Boolean myBoolean = Boolean.TRUE;
assertEquals("true", String.valueOf(myBoolean));
                                                 
myBoolean = Boolean.FALSE;
assertEquals("false", String.valueOf(myBoolean));

It’s worth mentioning that the String.valueOf() method is null-safe. In other words, if our Boolean variable is null, String.valueOf() produces “null” instead of throwing NullPointerException:

Boolean nullBoolean = null;
assertEquals("null", String.valueOf(nullBoolean));

This is because the String.valueOf(Object obj) method does the null-check:

public static String valueOf(Object obj) {
    return obj == null ? "null" : obj.toString();
}

6. Conclusion

In this article, we’ve explored various ways to convert boolean values to strings in Java.

We’ve discussed the primitive boolean and object Boolean cases:

  • boolean – using the ternary operator
  • Boolean – we can use either the Boolean.toString() method (null-check required) or the String.valueOf() method (null-safe)

As usual, all code snippets presented here are available over on GitHub.

Course – LS – All

Get started with Spring and Spring Boot, through the Learn Spring course:

>> CHECK OUT THE COURSE
res – REST with Spring (eBook) (everywhere)
Comments are open for 30 days after publishing a post. For any issues past this date, use the Contact form on the site.