I know org.apache.common.lang.StringUtils is recommended because of its null safety.
Often with String values, code will be riddled with if (foo != null) {... for the most basic of string operations.
Apache writes a lot of Java code so it has gone to great lengths to offer helper utilities for common operations.
For example:
int i = s.indexOf('foo'); // Can throw NullPointerException!
String b = s.toUpperCase(); // Can throw NullPointerException!!
if (s.equals('bar') // Can throw NullPointerException!!!
// ...
If you start reading through the StringUtils class you'll notice null is handled over and over -- indexOf, upperCase, equals -- all cover null safety. This can drastically simplify your code.
From apache.org:
"StringUtils handles null input Strings quietly. That is to say that a null input will return null. Where a boolean or int is being returned details vary by method"
From my experience, the decision to use StringUtils is directly influenced by how many if (foo == null) { ... statements you use in the project combined with whether or not a dependency you have in your code already imports this particular utility/library -- all subject to change over the lifespan of a project.