Parsing text fell out of fashion when Extensible Markup Language (XML) came to town. Java's text manipulation capabilities have only recently received some badly overdue attention, with the addition of regular expressions and numerous improvements in Java 1.5. Despite the improvements, using Java to manipulate plain text can inspire frustration. Hand a developer a fixed-length text file format to parse, and you will hear the groans—"Why can't we use something `modern' like XML? I don't want to parse text." And while parsing and manipulating text may not build you a sexy resume, there is still a need to work with text in any program. For every snazzy XML file format, there is a widely accepted text file format with fixed-length fields; and for every XML web service, a vendor sends a proprietary feed that must be parsed character by character. Text manipulation is a must, but the Java 2 Standard Edition (J2SE) leaves developers wanting for more convenient ways to slice, dice, chomp, and manipulate text. This chapter introduces some simple utilities, which fill a few of Java's many gaps.
The recipes in this chapter deal with a collection of static methods
on two classes in Commons Lang—StringUtils
and WordUtils
. Some of the methods on StringUtils
have been made obsolete by changes
introduced in Java 1.4 and Java 1.5, but, regardless, there are times when
you will want to split a string without regular expressions. Using
StringUtils.chomp( )
achieves more
readable logic than writing the equivalent logic using the String.indexOf( )
and String.substring()
methods. These recipes will
not change the basic architecture of a system with new, groundbreaking
technology, but they are valuable "shortcuts" whose benefits will add up
over time. Simple solutions to common tasks will save minutes of coding
and hours of maintenance in the long run. Over time, many grow so
accustomed to the efficiencies gained with Commons Lang, they consider it
an indispensable supplement to the Java language.
Read the recipes in this chapter, and take some time to read the
Javadoc for StringUtils
and WordUtils
. These utility classes provide some
common string operations missing in Java, and they are simple and
well-documented. These utilities are so simple that, throughout this
chapter, you will notice recipes without a Discussion or See Also
section—it's just not needed! These simple recipes have relevance to all
skill levels; even if you are an experienced developer, you may be
surprised at what Commons Lang string manipulation has to offer.