org.jooq.tools
Class StringUtils

java.lang.Object
  extended by org.jooq.tools.StringUtils

public final class StringUtils
extends Object

Operations on String that are null safe.

The StringUtils class defines certain words related to String handling.

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.

A side effect of the null handling is that a NullPointerException should be considered a bug in StringUtils (except for deprecated methods).

Methods in this class give sample code to explain their operation. The symbol * is used to indicate any input including null.

Since:
1.0
Version:
$Id: StringUtils.java 911986 2010-02-19 21:19:05Z niallp $
Author:
Apache Software Foundation, Apache Jakarta Turbine, Jon S. Stevens, Daniel L. Rall, Greg Coladonato, Ed Korthof, Rand McNeely, Fredrik Westermarck, Holger Krauth, Alexander Day Chaffee, Henning P. Schmiedehausen, Arun Mammen Thomas, Gary Gregory, Phil Steitz, Al Chou, Michael Davey, Reuben Sivan, Chris Hyzer, Scott Johnson
See Also:
String

Method Summary
static String abbreviate(String str, int maxWidth)
          Abbreviates a String using ellipses.
static String abbreviate(String str, int offset, int maxWidth)
          Abbreviates a String using ellipses.
static boolean containsAny(String str, char... searchChars)
          Checks if the String contains any character in the given set of characters.
static int countMatches(String str, String sub)
           Counts how many times the substring appears in the larger String.
static String defaultIfEmpty(String str, String defaultStr)
          Returns either the passed in String, or if the String is empty or null, the value of defaultStr.
static String defaultString(String str)
           Returns either the passed in String, or if the String is null, an empty String ("").
static String defaultString(String str, String defaultStr)
          Returns either the passed in String, or if the String is null, the value of defaultStr.
static boolean isBlank(String str)
           Checks if a String is whitespace, empty ("") or null.
static boolean isEmpty(String str)
           Checks if a String is empty ("") or null.
static String leftPad(String str, int size)
          Left pad a String with spaces (' ').
static String leftPad(String str, int size, char padChar)
          Left pad a String with a specified character.
static String leftPad(String str, int size, String padStr)
          Left pad a String with a specified String.
static String replaceEach(String text, String[] searchList, String[] replacementList)
           Replaces all occurrences of Strings within another String.
static String rightPad(String str, int size)
          Right pad a String with spaces (' ').
static String rightPad(String str, int size, char padChar)
          Right pad a String with a specified character.
static String rightPad(String str, int size, String padStr)
          Right pad a String with a specified String.
static String toCamelCase(String string)
          Convert a string to camel case
static String toCamelCaseLC(String string)
          Convert a string to camel case starting with a lower case letter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

defaultString

public static String defaultString(String str)

Returns either the passed in String, or if the String is null, an empty String ("").

 StringUtils.defaultString(null)  = ""
 StringUtils.defaultString("")    = ""
 StringUtils.defaultString("bat") = "bat"
 

Parameters:
str - the String to check, may be null
Returns:
the passed in String, or the empty String if it was null
See Also:
String.valueOf(Object)

defaultString

public static String defaultString(String str,
                                   String defaultStr)

Returns either the passed in String, or if the String is null, the value of defaultStr.

 StringUtils.defaultString(null, "NULL")  = "NULL"
 StringUtils.defaultString("", "NULL")    = ""
 StringUtils.defaultString("bat", "NULL") = "bat"
 

Parameters:
str - the String to check, may be null
defaultStr - the default String to return if the input is null, may be null
Returns:
the passed in String, or the default if it was null
See Also:
String.valueOf(Object)

defaultIfEmpty

public static String defaultIfEmpty(String str,
                                    String defaultStr)

Returns either the passed in String, or if the String is empty or null, the value of defaultStr.

 StringUtils.defaultIfEmpty(null, "NULL")  = "NULL"
 StringUtils.defaultIfEmpty("", "NULL")    = "NULL"
 StringUtils.defaultIfEmpty("bat", "NULL") = "bat"
 

Parameters:
str - the String to check, may be null
defaultStr - the default String to return if the input is empty ("") or null, may be null
Returns:
the passed in String, or the default
See Also:
defaultString(String, String)

isEmpty

public static boolean isEmpty(String str)

Checks if a String is empty ("") or null.

 StringUtils.isEmpty(null)      = true
 StringUtils.isEmpty("")        = true
 StringUtils.isEmpty(" ")       = false
 StringUtils.isEmpty("bob")     = false
 StringUtils.isEmpty("  bob  ") = false
 

NOTE: This method changed in Lang version 2.0. It no longer trims the String. That functionality is available in isBlank().

Parameters:
str - the String to check, may be null
Returns:
true if the String is empty or null

isBlank

public static boolean isBlank(String str)

Checks if a String is whitespace, empty ("") or null.

 StringUtils.isBlank(null)      = true
 StringUtils.isBlank("")        = true
 StringUtils.isBlank(" ")       = true
 StringUtils.isBlank("bob")     = false
 StringUtils.isBlank("  bob  ") = false
 

Parameters:
str - the String to check, may be null
Returns:
true if the String is null, empty or whitespace
Since:
2.0

countMatches

public static int countMatches(String str,
                               String sub)

Counts how many times the substring appears in the larger String.

A null or empty ("") String input returns 0.

 StringUtils.countMatches(null, *)       = 0
 StringUtils.countMatches("", *)         = 0
 StringUtils.countMatches("abba", null)  = 0
 StringUtils.countMatches("abba", "")    = 0
 StringUtils.countMatches("abba", "a")   = 2
 StringUtils.countMatches("abba", "ab")  = 1
 StringUtils.countMatches("abba", "xxx") = 0
 

Parameters:
str - the String to check, may be null
sub - the substring to count, may be null
Returns:
the number of occurrences, 0 if either String is null

rightPad

public static String rightPad(String str,
                              int size)

Right pad a String with spaces (' ').

The String is padded to the size of size.

 StringUtils.rightPad(null, *)   = null
 StringUtils.rightPad("", 3)     = "   "
 StringUtils.rightPad("bat", 3)  = "bat"
 StringUtils.rightPad("bat", 5)  = "bat  "
 StringUtils.rightPad("bat", 1)  = "bat"
 StringUtils.rightPad("bat", -1) = "bat"
 

Parameters:
str - the String to pad out, may be null
size - the size to pad to
Returns:
right padded String or original String if no padding is necessary, null if null String input

rightPad

public static String rightPad(String str,
                              int size,
                              char padChar)

Right pad a String with a specified character.

The String is padded to the size of size.

 StringUtils.rightPad(null, *, *)     = null
 StringUtils.rightPad("", 3, 'z')     = "zzz"
 StringUtils.rightPad("bat", 3, 'z')  = "bat"
 StringUtils.rightPad("bat", 5, 'z')  = "batzz"
 StringUtils.rightPad("bat", 1, 'z')  = "bat"
 StringUtils.rightPad("bat", -1, 'z') = "bat"
 

Parameters:
str - the String to pad out, may be null
size - the size to pad to
padChar - the character to pad with
Returns:
right padded String or original String if no padding is necessary, null if null String input
Since:
2.0

rightPad

public static String rightPad(String str,
                              int size,
                              String padStr)

Right pad a String with a specified String.

The String is padded to the size of size.

 StringUtils.rightPad(null, *, *)      = null
 StringUtils.rightPad("", 3, "z")      = "zzz"
 StringUtils.rightPad("bat", 3, "yz")  = "bat"
 StringUtils.rightPad("bat", 5, "yz")  = "batyz"
 StringUtils.rightPad("bat", 8, "yz")  = "batyzyzy"
 StringUtils.rightPad("bat", 1, "yz")  = "bat"
 StringUtils.rightPad("bat", -1, "yz") = "bat"
 StringUtils.rightPad("bat", 5, null)  = "bat  "
 StringUtils.rightPad("bat", 5, "")    = "bat  "
 

Parameters:
str - the String to pad out, may be null
size - the size to pad to
padStr - the String to pad with, null or empty treated as single space
Returns:
right padded String or original String if no padding is necessary, null if null String input

leftPad

public static String leftPad(String str,
                             int size)

Left pad a String with spaces (' ').

The String is padded to the size of size.

 StringUtils.leftPad(null, *)   = null
 StringUtils.leftPad("", 3)     = "   "
 StringUtils.leftPad("bat", 3)  = "bat"
 StringUtils.leftPad("bat", 5)  = "  bat"
 StringUtils.leftPad("bat", 1)  = "bat"
 StringUtils.leftPad("bat", -1) = "bat"
 

Parameters:
str - the String to pad out, may be null
size - the size to pad to
Returns:
left padded String or original String if no padding is necessary, null if null String input

leftPad

public static String leftPad(String str,
                             int size,
                             char padChar)

Left pad a String with a specified character.

Pad to a size of size.

 StringUtils.leftPad(null, *, *)     = null
 StringUtils.leftPad("", 3, 'z')     = "zzz"
 StringUtils.leftPad("bat", 3, 'z')  = "bat"
 StringUtils.leftPad("bat", 5, 'z')  = "zzbat"
 StringUtils.leftPad("bat", 1, 'z')  = "bat"
 StringUtils.leftPad("bat", -1, 'z') = "bat"
 

Parameters:
str - the String to pad out, may be null
size - the size to pad to
padChar - the character to pad with
Returns:
left padded String or original String if no padding is necessary, null if null String input
Since:
2.0

leftPad

public static String leftPad(String str,
                             int size,
                             String padStr)

Left pad a String with a specified String.

Pad to a size of size.

 StringUtils.leftPad(null, *, *)      = null
 StringUtils.leftPad("", 3, "z")      = "zzz"
 StringUtils.leftPad("bat", 3, "yz")  = "bat"
 StringUtils.leftPad("bat", 5, "yz")  = "yzbat"
 StringUtils.leftPad("bat", 8, "yz")  = "yzyzybat"
 StringUtils.leftPad("bat", 1, "yz")  = "bat"
 StringUtils.leftPad("bat", -1, "yz") = "bat"
 StringUtils.leftPad("bat", 5, null)  = "  bat"
 StringUtils.leftPad("bat", 5, "")    = "  bat"
 

Parameters:
str - the String to pad out, may be null
size - the size to pad to
padStr - the String to pad with, null or empty treated as single space
Returns:
left padded String or original String if no padding is necessary, null if null String input

abbreviate

public static String abbreviate(String str,
                                int maxWidth)

Abbreviates a String using ellipses. This will turn "Now is the time for all good men" into "Now is the time for..."

Specifically:

  • If str is less than maxWidth characters long, return it.
  • Else abbreviate it to (substring(str, 0, max-3) + "...").
  • If maxWidth is less than 4, throw an IllegalArgumentException.
  • In no case will it return a String of length greater than maxWidth.

 StringUtils.abbreviate(null, *)      = null
 StringUtils.abbreviate("", 4)        = ""
 StringUtils.abbreviate("abcdefg", 6) = "abc..."
 StringUtils.abbreviate("abcdefg", 7) = "abcdefg"
 StringUtils.abbreviate("abcdefg", 8) = "abcdefg"
 StringUtils.abbreviate("abcdefg", 4) = "a..."
 StringUtils.abbreviate("abcdefg", 3) = IllegalArgumentException
 

Parameters:
str - the String to check, may be null
maxWidth - maximum length of result String, must be at least 4
Returns:
abbreviated String, null if null String input
Throws:
IllegalArgumentException - if the width is too small
Since:
2.0

abbreviate

public static String abbreviate(String str,
                                int offset,
                                int maxWidth)

Abbreviates a String using ellipses. This will turn "Now is the time for all good men" into "...is the time for..."

Works like abbreviate(String, int), but allows you to specify a "left edge" offset. Note that this left edge is not necessarily going to be the leftmost character in the result, or the first character following the ellipses, but it will appear somewhere in the result.

In no case will it return a String of length greater than maxWidth.

 StringUtils.abbreviate(null, *, *)                = null
 StringUtils.abbreviate("", 0, 4)                  = ""
 StringUtils.abbreviate("abcdefghijklmno", -1, 10) = "abcdefg..."
 StringUtils.abbreviate("abcdefghijklmno", 0, 10)  = "abcdefg..."
 StringUtils.abbreviate("abcdefghijklmno", 1, 10)  = "abcdefg..."
 StringUtils.abbreviate("abcdefghijklmno", 4, 10)  = "abcdefg..."
 StringUtils.abbreviate("abcdefghijklmno", 5, 10)  = "...fghi..."
 StringUtils.abbreviate("abcdefghijklmno", 6, 10)  = "...ghij..."
 StringUtils.abbreviate("abcdefghijklmno", 8, 10)  = "...ijklmno"
 StringUtils.abbreviate("abcdefghijklmno", 10, 10) = "...ijklmno"
 StringUtils.abbreviate("abcdefghijklmno", 12, 10) = "...ijklmno"
 StringUtils.abbreviate("abcdefghij", 0, 3)        = IllegalArgumentException
 StringUtils.abbreviate("abcdefghij", 5, 6)        = IllegalArgumentException
 

Parameters:
str - the String to check, may be null
offset - left edge of source String
maxWidth - maximum length of result String, must be at least 4
Returns:
abbreviated String, null if null String input
Throws:
IllegalArgumentException - if the width is too small
Since:
2.0

containsAny

public static boolean containsAny(String str,
                                  char... searchChars)

Checks if the String contains any character in the given set of characters.

A null String will return false. A null or zero length search array will return false.

 StringUtils.containsAny(null, *)                = false
 StringUtils.containsAny("", *)                  = false
 StringUtils.containsAny(*, null)                = false
 StringUtils.containsAny(*, [])                  = false
 StringUtils.containsAny("zzabyycdxx",['z','a']) = true
 StringUtils.containsAny("zzabyycdxx",['b','y']) = true
 StringUtils.containsAny("aba", ['z'])           = false
 

Parameters:
str - the String to check, may be null
searchChars - the chars to search for, may be null
Returns:
the true if any of the chars are found, false if no match or null input
Since:
2.4

replaceEach

public static String replaceEach(String text,
                                 String[] searchList,
                                 String[] replacementList)

Replaces all occurrences of Strings within another String.

A null reference passed to this method is a no-op, or if any "search string" or "string to replace" is null, that replace will be ignored. This will not repeat. For repeating replaces, call the overloaded method.

  StringUtils.replaceEach(null, *, *)        = null
  StringUtils.replaceEach("", *, *)          = ""
  StringUtils.replaceEach("aba", null, null) = "aba"
  StringUtils.replaceEach("aba", new String[0], null) = "aba"
  StringUtils.replaceEach("aba", null, new String[0]) = "aba"
  StringUtils.replaceEach("aba", new String[]{"a"}, null)  = "aba"
  StringUtils.replaceEach("aba", new String[]{"a"}, new String[]{""})  = "b"
  StringUtils.replaceEach("aba", new String[]{null}, new String[]{"a"})  = "aba"
  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"})  = "wcte"
  (example of how it does not repeat)
  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"})  = "dcte"
 

Parameters:
text - text to search and replace in, no-op if null
searchList - the Strings to search for, no-op if null
replacementList - the Strings to replace them with, no-op if null
Returns:
the text with any replacements processed, null if null String input
Throws:
IndexOutOfBoundsException - if the lengths of the arrays are not the same (null is ok, and/or size 0)
Since:
2.4

toCamelCase

public static String toCamelCase(String string)
Convert a string to camel case


toCamelCaseLC

public static String toCamelCaseLC(String string)
Convert a string to camel case starting with a lower case letter



Copyright © 2012. All Rights Reserved.