50

I'm unsure what's the shortest and most robust way to check whether a Text field is blank / empty?

/*1*/ Boolean isBlank = record.txt_Field__c == '';
/*2*/ Boolean isBlank = record.txt_Field__c == null;
/*3*/ Boolean isBlank = record.txt_Field__c.trim() == '';
/*4*/ Boolean isBlank = record.txt_Field__c.size() == 0;

5 Answers 5

85

I use the isBlank(String) method on the string class in order to check whether a string is either null, white space or empty.

String.isBlank(record.txt_Field__c);

The documentation says:

Returns true if the specified String is white space, empty (''), or null; otherwise, returns false.

5
  • 5
    It's worth noting that this is effectively a combination of 1 and 2 in @RobertSosemann's post as it catches both null and ''. Commented May 20, 2015 at 7:58
  • 1
    and it would even catch strings with white space only like ' '. Commented May 20, 2015 at 9:24
  • 7
    Note: If checking from a query, pre- and post-whitespace is automatically trimmed, and if the result would be an empty space, the field is instead null. That means that you virtually never need to check for '' (empty string).
    – sfdcfox
    Commented May 20, 2015 at 15:53
  • Thanks. It's like the difference between String.IsNullOrEmpty and String.IsNullOrWhiteSpace in C#/.NET.
    – wp78de
    Commented Jan 4, 2018 at 18:35
  • There are also isNotEmpty() and isNotBlank(), please check out the official docs here: developer.salesforce.com/docs/atlas.en-us.apexcode.meta/…
    – Bahman.A
    Commented May 21, 2020 at 18:42
13

The difference is slight between isEmpty() and isBlank()

isBlank(inputString): Returns true if the specified String is white space, empty (''), or null; otherwise, returns false.

isEmpty(inputString) : Returns true if the specified String is empty ('') or null; otherwise, returns false.

So the isEmpty() function is a subset of isBlank() function.

Usage

In case, your check is for a null string or a string which does not contain any value(''), but in your usecase a String having a space is valid then use isEmpty().

If you want to check if your string is null or have no value or have only blank spaces you should use isBlank

To know more about the String class you can follow the following link : Documentation

Hope this helps..

6

There's a method isEmpty(String), which returns true if string is null or empty. Unlike isBlank(String), returns false if string is white spaces.

6

You can use this:

if(String.isBlank(record.txt_Field__c)){
    Boolean isBlank = true;
}

The above is same as:

if(record.txt_Field__c == null || record.txt_Field__c == '' || record.txt_Field__c.trim.length() == 0) {
    Boolean isBlank = true;
}
2
  • 4
    Why would you use this over the built in String.isBlank? Commented May 22, 2015 at 3:37
  • 1
    its better to use String.isBlank since it checks for all three conditions
    – Walker
    Commented May 22, 2015 at 3:41
0

There are also isNotEmpty() and isNotBlank(), check out the official documentation for String class in Apex

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .