You need to strip or trim a string of extraneous whitespace, control characters, or other specified characters.
StringUtils.trim()
takes a string and removes every whitespace and control
character from the beginning and the end:
String test1 = " \a\r Testing 1 2 3 "; String test2 = " \r\n "; String trimTest1 = StringUtils.trim( test1 ); String trimTest2 = StringUtils.trimToNull( test2 ); System.out.println( trimTest1 ); System.our.println( trimTest2 );
This code produces the following result. The test1
variable is trimmed of leading and
trailing whitespace, and the test2
variable is trimmed to null
:
Testing 1 2 3 null
A control character
is defined as all characters below 32 on the ASCII
table—everything from 0
(NUL)
to 31
(unit
separator)
. StringUtils.trim( )
delegates to the trim( )
function on String
and gracefully handles null
. When you pass a null
to StringUtils.trim( )
, it returns a null
.
If a string contains leading and trailing characters to be
removed, you can remove them with StringUtils.strip( )
. The strip( )
method differs from trim( )
in that you can specify a set of
characters to strip from the beginning and end of a string. In this
example, dashes and asterisks are stripped from the start and end of a
string:
String original = "-------***---SHAZAM!---***-------"; String stripped = StringUtils.strip( original, "-*" ); System.out.println( "Stripped: " + stripped )
This produces the following output:
Stripped: SHAZAM!
Use trimToNull( )
to test if a given parameter is present. Take the
following servlet code as an example:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String companyName = StringUtils.trimToNull( request.getParameter("companyName") ); if( companyName != null ) { response.getWriter( ).write( "You supplied a company name!" ); } }
Using StringUtils
reduces
code complexity incrementally—four or five lines of code at a time.
Testing for the absence or emptiness of a string usually entails
checking to see if a string is empty or of zero length, and because a
string could be null
, you always
need to check for null
to avoid
throwing a NullPointerException
. In
this last example, empty has the same meaning as null
—the StringUtils.trimToNull( )
method takes a
string as a parameter, and if it is null
or empty, the method returns a null
.