Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| The Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.springframework.util
Class StringUtils

    java.lang.Object
      org.springframework.util.StringUtils

    public abstract class StringUtils

extends Object

Miscellaneous `String` utility methods.

Mainly for internal use within the framework; consider Jakarta's Commons Lang for a more comprehensive suite of `String utilities`.

This class delivers some simple functionality that should really be provided by the core Java `String` and `StringBuffer` classes, such as the ability to `replace(java.lang.String, java.lang.String, java.lang.String)` all occurrences of a given substring in a target string. It also provides easy-to-use methods to convert between delimited strings, such as CSV strings, and collections and arrays.

Since:
  16 April 2001
Author:
  Rod Johnson, Juergen Hoeller, Keith Donald, Rob Harrop, Rick Evans

Constructor Summary
`StringUtils()`

Method Summary
`static String[]` | `addStringToArray(String[] array, String str)` Append the given String to the given String array, returning a new array consisting of the input array contents plus the given String.
`static String` | `applyRelativePath(String path, String relativePath)` Apply the given relative path to the given path, assuming standard Java folder separation (i.e. "/" separators);
`static String` | `arrayToCommaDelimitedString(Object[] arr)` Convenience method to return a String array as a CSV String.
`static String` | `arrayToDelimitedString(Object[] arr, String delim)` Convenience method to return a String array as a delimited (e.g.
`static String` | `capitalize(String str)` Capitalize a `String`, changing the first letter to upper case as per `Character.toUpperCase(char)`.
`static String` | `cleanPath(String path)` Normalize the path by suppressing sequences like "path/.." and inner simple dots.
`static String` | `collectionToCommaDelimitedString(Collection coll)` Convenience method to return a Collection as a CSV String.
`static String` | `collectionToDelimitedString(Collection coll, String delim)` Convenience method to return a Collection as a delimited (e.g.
`static String` | `collectionToDelimitedString(Collection coll, String delim, String prefix, String suffix)` Convenience method to return a Collection as a delimited (e.g.
`static Set` | `commaDelimitedListToSet(String str)` Convenience method to convert a CSV string list to a set.
`static String[]` | `commaDelimitedListToStringArray(String str)` Convert a CSV list into an array of Strings.
`static String[]` | `concatenateStringArrays(String[] array1, String[] array2)` Concatenate the given String arrays into one, with overlapping array elements included twice.
`static boolean` | `containsWhitespace(String str)` Check whether the given String contains any whitespace characters.
`static int` | `countOccurrencesOf(String str, String sub)` Count the occurrences of the substring in string s.
`static String` | `delete(String inString, String pattern)` Delete all occurrences of the given substring.
`static String` | `deleteAny(String inString, String charsToDelete)` Delete any character in a given string.
`static String[]` | `delimitedListToStringArray(String str, String delimiter)` Take a String which is a delimited list and convert it to a String array.
`static String[]` | `delimitedListToStringArray(String str, String delimiter, String charsToDelete)` Take a String which is a delimited list and convert it to a String array.
`static boolean` | `endsWithIgnoreCase(String str, String suffix)` Test if the given String ends with the specified suffix, ignoring upper/lower case.
`static String` | `getFilename(String path)` Extract the filename from the given path, e.g.
`static String` | `getFilenameExtension(String path)` Extract the filename extension from the given path, e.g.
`static boolean` | `hasLength(String str)` Check that the given String is neither `null` nor of length 0.
`static boolean` | `hasText(String str)` Check whether the given String has actual text.
`static String[]` | `mergeStringArrays(String[] array1, String[] array2)` Merge the given String arrays into one, with overlapping array elements only included once.
`static Locale` | `parseLocaleString(String localeString)` Parse the given `localeString` into a `Locale`.
`static boolean` | `pathEquals(String path1, String path2)` Compare two paths after normalization of them.
`static String` | `quote(String str)` Quote the given String with single quotes.
`static Object` | `quoteIfString(Object obj)` Turn the given Object into a String with single quotes if it is a String; keeping the Object as-is else.
`static String[]` | `removeDuplicateStrings(String[] array)` Remove duplicate Strings from the given array.
`static String` | `replace(String inString, String oldPattern, String newPattern)` Replace all occurences of a substring within a string with another string.
`static String[]` | `sortStringArray(String[] array)` Turn given source String array into sorted array.
`static String[]` | `split(String toSplit, String delimiter)` Split a String at the first occurrence of the delimiter.
`static Properties` | `splitArrayElementsIntoProperties(String[] array, String delimiter)` Take an array Strings and split each element based on the given delimiter.
`static Properties` | `splitArrayElementsIntoProperties(String[] array, String delimiter, String charsToDelete)` Take an array Strings and split each element based on the given delimiter.
`static boolean` | `startsWithIgnoreCase(String str, String prefix)` Test if the given String starts with the specified prefix, ignoring upper/lower case.
`static String` | `stripFilenameExtension(String path)` Strip the filename extension from the given path, e.g.
`static String[]` | `tokenizeToStringArray(String str, String delimiters)` Tokenize the given String into a String array via a StringTokenizer.
`static String[]` | `tokenizeToStringArray(String str, String delimiters, boolean trimTokens, boolean ignoreEmptyTokens)` Tokenize the given String into a String array via a StringTokenizer.
`static String[]` | `toStringArray(Collection collection)` Copy the given Collection into a String array.
`static String` | `trimAllWhitespace(String str)` Trim all whitespace from the given String: leading, trailing, and inbetween characters.
`static String[]` | `trimArrayElements(String[] array)` Trim the elements of the given String array, calling `String.trim()` on each of them.
`static String` | `trimLeadingCharacter(String str, char leadingCharacter)` Trim all occurences of the supplied leading character from the given String.
`static String` | `trimLeadingWhitespace(String str)` Trim leading whitespace from the given String.
`static String` | `trimTrailingWhitespace(String str)` Trim trailing whitespace from the given String.
`static String` | `trimWhitespace(String str)` Trim leading and trailing whitespace from the given String.
`static String` | `uncapitalize(String str)` Uncapitalize a `String`, changing the first letter to lower case as per `Character.toLowerCase(char)`.
`static String` | `unqualify(String qualifiedName)` Unqualify a string qualified by a '.' dot character.
`static String` | `unqualify(String qualifiedName, char separator)` Unqualify a string qualified by a separator character.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### StringUtils

    public StringUtils()

Method Detail

### hasLength

    public static boolean hasLength(String str)

  Check that the given String is neither `null` nor of length 0. Note: Will return `true` for a String that purely consists of whitespace.

       StringUtils.hasLength(null) = false
       StringUtils.hasLength("") = false
       StringUtils.hasLength(" ") = true
       StringUtils.hasLength("Hello") = true

  Parameters:
    `str` - the String to check (may be `null`)
  Returns:
    `true` if the String is not null and has length
  See Also:
    `hasText(String)`

### hasText

    public static boolean hasText(String str)

  Check whether the given String has actual text. More specifically, returns `true` if the string not `null`, its length is greater than 0, and it contains at least one non-whitespace character.

       StringUtils.hasText(null) = false
       StringUtils.hasText("") = false
       StringUtils.hasText(" ") = false
       StringUtils.hasText("12345") = true
       StringUtils.hasText(" 12345 ") = true

  Parameters:
    `str` - the String to check (may be `null`)
  Returns:
    `true` if the String is not `null`, its length is greater than 0, and it does not contain whitespace only
  See Also:
    `Character.isWhitespace(char)`

### containsWhitespace

    public static boolean containsWhitespace(String str)

  Check whether the given String contains any whitespace characters.

  Parameters:
    `str` - the String to check (may be `null`)
  Returns:
    `true` if the String is not empty and contains at least 1 whitespace character
  See Also:
    `Character.isWhitespace(char)`

### trimWhitespace

    public static String trimWhitespace(String str)

  Trim leading and trailing whitespace from the given String.

  Parameters:
    `str` - the String to check
  Returns:
    the trimmed String
  See Also:
    `Character.isWhitespace(char)`

### trimLeadingWhitespace

    public static String trimLeadingWhitespace(String str)

  Trim leading whitespace from the given String.

  Parameters:
    `str` - the String to check
  Returns:
    the trimmed String
  See Also:
    `Character.isWhitespace(char)`

### trimLeadingCharacter

    public static String trimLeadingCharacter(String str,
                                              char leadingCharacter)

  Trim all occurences of the supplied leading character from the given String.

  Parameters:
    `str` - the String to check
    `leadingCharacter` - the leading character to be trimmed
  Returns:
    the trimmed String

### trimTrailingWhitespace

    public static String trimTrailingWhitespace(String str)

  Trim trailing whitespace from the given String.

  Parameters:
    `str` - the String to check
  Returns:
    the trimmed String
  See Also:
    `Character.isWhitespace(char)`

### trimAllWhitespace

    public static String trimAllWhitespace(String str)

  Trim all whitespace from the given String: leading, trailing, and inbetween characters.

  Parameters:
    `str` - the String to check
  Returns:
    the trimmed String
  See Also:
    `Character.isWhitespace(char)`

### startsWithIgnoreCase

    public static boolean startsWithIgnoreCase(String str,
                                               String prefix)

  Test if the given String starts with the specified prefix, ignoring upper/lower case.

  Parameters:
    `str` - the String to check
    `prefix` - the prefix to look for
  See Also:
    `String.startsWith(java.lang.String, int)`

### endsWithIgnoreCase

    public static boolean endsWithIgnoreCase(String str,
                                             String suffix)

  Test if the given String ends with the specified suffix, ignoring upper/lower case.

  Parameters:
    `str` - the String to check
    `suffix` - the suffix to look for
  See Also:
    `String.endsWith(java.lang.String)`

### countOccurrencesOf

    public static int countOccurrencesOf(String str,
                                         String sub)

  Count the occurrences of the substring in string s.

  Parameters:
    `str` - string to search in. Return 0 if this is null.
    `sub` - string to search for. Return 0 if this is null.

### replace

    public static String replace(String inString,
                                 String oldPattern,
                                 String newPattern)

  Replace all occurences of a substring within a string with another string.

  Parameters:
    `inString` - String to examine
    `oldPattern` - String to replace
    `newPattern` - String to insert
  Returns:
    a String with the replacements

### delete

    public static String delete(String inString,
                                String pattern)

  Delete all occurrences of the given substring.

  Parameters:
    `pattern` - the pattern to delete all occurrences of

### deleteAny

    public static String deleteAny(String inString,
                                   String charsToDelete)

  Delete any character in a given string.

  Parameters:
    `charsToDelete` - a set of characters to delete. E.g. "az\n" will delete 'a's, 'z's and new lines.

### quote

    public static String quote(String str)

  Quote the given String with single quotes.

  Parameters:
    `str` - the input String (e.g. "myString")
  Returns:
    the quoted String (e.g. "'myString'"), or `null`if the input was `null```

### quoteIfString

    public static Object quoteIfString(Object obj)

  Turn the given Object into a String with single quotes if it is a String; keeping the Object as-is else.

  Parameters:
    `obj` - the input Object (e.g. "myString")
  Returns:
    the quoted String (e.g. "'myString'"), or the input object as-is if not a String

### unqualify

    public static String unqualify(String qualifiedName)

  Unqualify a string qualified by a '.' dot character. For example, "this.name.is.qualified", returns "qualified".

  Parameters:
    `qualifiedName` - the qualified name

### unqualify

    public static String unqualify(String qualifiedName,
                                   char separator)

  Unqualify a string qualified by a separator character. For example, "this:name:is:qualified" returns "qualified" if using a ':' separator.

  Parameters:
    `qualifiedName` - the qualified name
    `separator` - the separator

### capitalize

    public static String capitalize(String str)

  Capitalize a `String`, changing the first letter to upper case as per `Character.toUpperCase(char)`. No other letters are changed.

  Parameters:
    `str` - the String to capitalize, may be `null`
  Returns:
    the capitalized String, `null` if null

### uncapitalize

    public static String uncapitalize(String str)

  Uncapitalize a `String`, changing the first letter to lower case as per `Character.toLowerCase(char)`. No other letters are changed.

  Parameters:
    `str` - the String to uncapitalize, may be `null`
  Returns:
    the uncapitalized String, `null` if null

### getFilename

    public static String getFilename(String path)

  Extract the filename from the given path, e.g. "mypath/myfile.txt" -> "myfile.txt".

  Parameters:
    `path` - the file path (may be `null`)
  Returns:
    the extracted filename, or `null` if none

### getFilenameExtension

    public static String getFilenameExtension(String path)

  Extract the filename extension from the given path, e.g. "mypath/myfile.txt" -> "txt".

  Parameters:
    `path` - the file path (may be `null`)
  Returns:
    the extracted filename extension, or `null` if none

### stripFilenameExtension

    public static String stripFilenameExtension(String path)

  Strip the filename extension from the given path, e.g. "mypath/myfile.txt" -> "mypath/myfile".

  Parameters:
    `path` - the file path (may be `null`)
  Returns:
    the path with stripped filename extension, or `null` if none

### applyRelativePath

    public static String applyRelativePath(String path,
                                           String relativePath)

  Apply the given relative path to the given path, assuming standard Java folder separation (i.e. "/" separators);

  Parameters:
    `path` - the path to start from (usually a full file path)
    `relativePath` - the relative path to apply (relative to the full file path above)
  Returns:
    the full file path that results from applying the relative path

### cleanPath

    public static String cleanPath(String path)

  Normalize the path by suppressing sequences like "path/.." and inner simple dots.

  The result is convenient for path comparison. For other uses, notice that Windows separators ("\") are replaced by simple slashes.

  Parameters:
    `path` - the original path
  Returns:
    the normalized path

### pathEquals

    public static boolean pathEquals(String path1,
                                     String path2)

  Compare two paths after normalization of them.

  Parameters:
    `path1` - first path for comparison
    `path2` - second path for comparison
  Returns:
    whether the two paths are equivalent after normalization

### parseLocaleString

    public static Locale parseLocaleString(String localeString)

  Parse the given `localeString` into a `Locale`.

  This is the inverse operation of `Locale's toString`.

  Parameters:
    `localeString` - the locale string, following `Locale's` `toString()` format ("en", "en_UK", etc); also accepts spaces as separators, as an alternative to underscores
  Returns:
    a corresponding `Locale` instance

### addStringToArray

    public static String[] addStringToArray(String[] array,
                                            String str)

  Append the given String to the given String array, returning a new array consisting of the input array contents plus the given String.

  Parameters:
    `array` - the array to append to (can be `null`)
    `str` - the String to append
  Returns:
    the new array (never `null`)

### concatenateStringArrays

    public static String[] concatenateStringArrays(String[] array1,
                                                   String[] array2)

  Concatenate the given String arrays into one, with overlapping array elements included twice.

  The order of elements in the original arrays is preserved.

  Parameters:
    `array1` - the first array (can be `null`)
    `array2` - the second array (can be `null`)
  Returns:
    the new array (`null` if both given arrays were `null`)

### mergeStringArrays

    public static String[] mergeStringArrays(String[] array1,
                                             String[] array2)

  Merge the given String arrays into one, with overlapping array elements only included once.

  The order of elements in the original arrays is preserved (with the exception of overlapping elements, which are only included on their first occurence).

  Parameters:
    `array1` - the first array (can be `null`)
    `array2` - the second array (can be `null`)
  Returns:
    the new array (`null` if both given arrays were `null`)

### sortStringArray

    public static String[] sortStringArray(String[] array)

  Turn given source String array into sorted array.

  Parameters:
    `array` - the source array
  Returns:
    the sorted array (never `null`)

### toStringArray

    public static String[] toStringArray(Collection collection)

  Copy the given Collection into a String array. The Collection must contain String elements only.

  Parameters:
    `collection` - the Collection to copy
  Returns:
    the String array (`null` if the passed-in Collection was `null`)

### trimArrayElements

    public static String[] trimArrayElements(String[] array)

  Trim the elements of the given String array, calling `String.trim()` on each of them.

  Parameters:
    `array` - the original String array
  Returns:
    the resulting array (of the same size) with trimmed elements

### removeDuplicateStrings

    public static String[] removeDuplicateStrings(String[] array)

  Remove duplicate Strings from the given array. Also sorts the array, as it uses a TreeSet.

  Parameters:
    `array` - the String array
  Returns:
    an array without duplicates, in natural sort order

### split

    public static String[] split(String toSplit,
                                 String delimiter)

  Split a String at the first occurrence of the delimiter. Does not include the delimiter in the result.

  Parameters:
    `toSplit` - the string to split
    `delimiter` - to split the string up with
  Returns:
    a two element array with index 0 being before the delimiter, and index 1 being after the delimiter (neither element includes the delimiter); or `null` if the delimiter wasn't found in the given input String

### splitArrayElementsIntoProperties

    public static Properties splitArrayElementsIntoProperties(String[] array,
                                                              String delimiter)

  Take an array Strings and split each element based on the given delimiter. A `Properties` instance is then generated, with the left of the delimiter providing the key, and the right of the delimiter providing the value.

  Will trim both the key and value before adding them to the `Properties` instance.

  Parameters:
    `array` - the array to process
    `delimiter` - to split each element using (typically the equals symbol)
  Returns:
    a `Properties` instance representing the array contents, or `null` if the array to process was null or empty

### splitArrayElementsIntoProperties

    public static Properties splitArrayElementsIntoProperties(String[] array,
                                                              String delimiter,
                                                              String charsToDelete)

  Take an array Strings and split each element based on the given delimiter. A `Properties` instance is then generated, with the left of the delimiter providing the key, and the right of the delimiter providing the value.

  Will trim both the key and value before adding them to the `Properties` instance.

  Parameters:
    `array` - the array to process
    `delimiter` - to split each element using (typically the equals symbol)
    `charsToDelete` - one or more characters to remove from each element prior to attempting the split operation (typically the quotation mark symbol), or `null` if no removal should occur
  Returns:
    a `Properties` instance representing the array contents, or `null` if the array to process was `null` or empty

### tokenizeToStringArray

    public static String[] tokenizeToStringArray(String str,
                                                 String delimiters)

  Tokenize the given String into a String array via a StringTokenizer. Trims tokens and omits empty tokens.

  The given delimiters string is supposed to consist of any number of delimiter characters. Each of those characters can be used to separate tokens. A delimiter is always a single character; for multi-character delimiters, consider using `delimitedListToStringArray`

  Parameters:
    `str` - the String to tokenize
    `delimiters` - the delimiter characters, assembled as String (each of those characters is individually considered as delimiter).
  Returns:
    an array of the tokens
  See Also:
    `StringTokenizer`, `String.trim()`, `delimitedListToStringArray(java.lang.String, java.lang.String)`

### tokenizeToStringArray

    public static String[] tokenizeToStringArray(String str,
                                                 String delimiters,
                                                 boolean trimTokens,
                                                 boolean ignoreEmptyTokens)

  Tokenize the given String into a String array via a StringTokenizer.

  The given delimiters string is supposed to consist of any number of delimiter characters. Each of those characters can be used to separate tokens. A delimiter is always a single character; for multi-character delimiters, consider using `delimitedListToStringArray`

  Parameters:
    `str` - the String to tokenize
    `delimiters` - the delimiter characters, assembled as String (each of those characters is individually considered as delimiter)
    `trimTokens` - trim the tokens via String's `trim`
    `ignoreEmptyTokens` - omit empty tokens from the result array (only applies to tokens that are empty after trimming; StringTokenizer will not consider subsequent delimiters as token in the first place).
  Returns:
    an array of the tokens (`null` if the input String was `null`)
  See Also:
    `StringTokenizer`, `String.trim()`, `delimitedListToStringArray(java.lang.String, java.lang.String)`

### delimitedListToStringArray

    public static String[] delimitedListToStringArray(String str,
                                                      String delimiter)

  Take a String which is a delimited list and convert it to a String array.

  A single delimiter can consists of more than one character: It will still be considered as single delimiter string, rather than as bunch of potential delimiter characters - in contrast to `tokenizeToStringArray`.

  Parameters:
    `str` - the input String
    `delimiter` - the delimiter between elements (this is a single delimiter, rather than a bunch individual delimiter characters)
  Returns:
    an array of the tokens in the list
  See Also:
    `tokenizeToStringArray(java.lang.String, java.lang.String)`

### delimitedListToStringArray

    public static String[] delimitedListToStringArray(String str,
                                                      String delimiter,
                                                      String charsToDelete)

  Take a String which is a delimited list and convert it to a String array.

  A single delimiter can consists of more than one character: It will still be considered as single delimiter string, rather than as bunch of potential delimiter characters - in contrast to `tokenizeToStringArray`.

  Parameters:
    `str` - the input String
    `delimiter` - the delimiter between elements (this is a single delimiter, rather than a bunch individual delimiter characters)
    `charsToDelete` - a set of characters to delete. Useful for deleting unwanted line breaks: e.g. "\r\n\f" will delete all new lines and line feeds in a String.
  Returns:
    an array of the tokens in the list
  See Also:
    `tokenizeToStringArray(java.lang.String, java.lang.String)`

### commaDelimitedListToStringArray

    public static String[] commaDelimitedListToStringArray(String str)

  Convert a CSV list into an array of Strings.

  Parameters:
    `str` - the input String
  Returns:
    an array of Strings, or the empty array in case of empty input

### commaDelimitedListToSet

    public static Set commaDelimitedListToSet(String str)

  Convenience method to convert a CSV string list to a set. Note that this will suppress duplicates.

  Parameters:
    `str` - the input String
  Returns:
    a Set of String entries in the list

### collectionToDelimitedString

    public static String collectionToDelimitedString(Collection coll,
                                                     String delim,
                                                     String prefix,
                                                     String suffix)

  Convenience method to return a Collection as a delimited (e.g. CSV) String. E.g. useful for `toString()` implementations.

  Parameters:
    `coll` - the Collection to display
    `delim` - the delimiter to use (probably a ",")
    `prefix` - the String to start each element with
    `suffix` - the String to end each element with

### collectionToDelimitedString

    public static String collectionToDelimitedString(Collection coll,
                                                     String delim)

  Convenience method to return a Collection as a delimited (e.g. CSV) String. E.g. useful for `toString()` implementations.

  Parameters:
    `coll` - the Collection to display
    `delim` - the delimiter to use (probably a ",")

### collectionToCommaDelimitedString

    public static String collectionToCommaDelimitedString(Collection coll)

  Convenience method to return a Collection as a CSV String. E.g. useful for `toString()` implementations.

  Parameters:
    `coll` - the Collection to display

### arrayToDelimitedString

    public static String arrayToDelimitedString(Object[] arr,
                                                String delim)

  Convenience method to return a String array as a delimited (e.g. CSV) String. E.g. useful for `toString()` implementations.

  Parameters:
    `arr` - the array to display
    `delim` - the delimiter to use (probably a ",")

### arrayToCommaDelimitedString

    public static String arrayToCommaDelimitedString(Object[] arr)

  Convenience method to return a String array as a CSV String. E.g. useful for `toString()` implementations.

  Parameters:
    `arr` - the array to display

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| The Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002-2007 The Spring Framework.