I have a need to show the boolean value as string and I'm trying to convert boolean to string but its not coming along, here is what I have done so far:

try to convert using String.valueOf but does not work.

tried this:

boolean b = true;
system.debug('boolean to string: ' + string.valueOf(b));

I'm getting the following:

USER_DEBUG [1]|DEBUG|boolean to string: true

But I want that to be in string like this 'true'

I have also tried to concatenate by using single quote

<apex:variable var="sr" value="{!string.valueOf('"' + record.status + '"')}"/>

then got this error:

Error Error: value="{!string.valueOf('"' + record.status + '"')}" EL Expression Unbalanced: ... {!string.valueOf('"' + record.status + '"')} Error Error: EL Expression Unbalanced: ... {!string.valueOf('"' + record.status + '"')}

  • 1
    String.valueOf(b) is a string.
    – sfdcfox
    Jun 24, 2016 at 19:59
  • System.assert( ((Object)(String.valueOf(b)) instanceOf String );
    – sfdcfox
    Jun 24, 2016 at 20:00
  • Take a look at this stackoverflow.com/questions/18833054/… OR what @sebastin kessel mentioned!
    – d_k
    Jun 24, 2016 at 20:07
  • You may want to simply explain what the problem is, not try to find a solution to a problem that might not even solve your problem. This is what we've come to call an x-y problem.
    – sfdcfox
    Jun 24, 2016 at 23:55

2 Answers 2


If you really want to format it differently than what you get out of String.valueOf, it is probably worth creating a method for it.

public static String wrapSingleQuotes(Boolean input)
    return (input == null) ? '' : '\'' + String.valueOf(input) + '\'';

Then you can do:

system.debug('boolean to string: ' + wrapSingleQuotes(b));

Same strategy would apply for parens, double quotes, etc.

In VF, you can simply use outputText:

<apex:outputText value="{!'\'' & myBoolean & '\''}" />
  • 1+ is there a way to do it on VFP instead of creating an apex method?
    – Nick Kahn
    Jun 24, 2016 at 23:10

How about

Boolean theBool = true;

String theString = (theBool) ? 'true' : 'false';

It's more verbose but it works.

PS: in the Debug Log you will not see strings in quotes, are you sure that the String.ValueOf method you called before is not already returning a string?

  • 2
    FWIW, your solution forgot about one of the three Boolean states: null. Personally, I'd just use the following: String theString = ''+theBool; This is the same as String.valueOf(theBool), won't crash on nulls, and is shorter than other solutions.
    – sfdcfox
    Jun 24, 2016 at 21:40
  • I wouldn't have used my own solution, tbh... I am still a bit surprised the OP says string.ValueOf() didn't work for him. I suspect he either wanted single quotes (which won't automatically be added) or erroneously expected them. Jun 24, 2016 at 21:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.