# Class CharSetUtils

java.lang.Object
org.apache.commons.lang3.CharSetUtils

public class CharSetUtils extends Object
Operations on `CharSet` instances.

This class handles `null` input gracefully. An exception will not be thrown for a `null` input. Each method documents its behavior in more detail.

#ThreadSafe#

Since:
  1.0
See Also:
  - `CharSet`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CharSetUtils()`
  Deprecated.
  TODO Make private in 4.0.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static boolean`
  `containsAny(String str, String... set)`
  Takes an argument in set-syntax, see evaluateSet, and identifies whether any of the characters are present in the specified string.
  `static int`
  `count(String str, String... set)`
  Takes an argument in set-syntax, see evaluateSet, and returns the number of characters present in the specified string.
  `static String`
  `delete(String str, String... set)`
  Takes an argument in set-syntax, see evaluateSet, and deletes any of characters present in the specified string.
  `static String`
  `keep(String str, String... set)`
  Takes an argument in set-syntax, see evaluateSet, and keeps any of characters present in the specified string.
  `static String`
  `squeeze(String str, String... set)`
  Squeezes any repetitions of a character that is mentioned in the supplied set.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### CharSetUtils

    @Deprecated public CharSetUtils()
    Deprecated.
    TODO Make private in 4.0.
    CharSetUtils instances should NOT be constructed in standard programming. Instead, the class should be used as `CharSetUtils.evaluateSet(null);`.

    This constructor is public to permit tools that require a JavaBean instance to operate.

- ## Method Details

  - ### containsAny

    public static boolean containsAny(String str, String... set)
    Takes an argument in set-syntax, see evaluateSet, and identifies whether any of the characters are present in the specified string.

        CharSetUtils.containsAny(null, *)        = false
        CharSetUtils.containsAny("", *)          = false
        CharSetUtils.containsAny(*, null)        = false
        CharSetUtils.containsAny(*, "")          = false
        CharSetUtils.containsAny("hello", "k-p") = true
        CharSetUtils.containsAny("hello", "a-d") = false

    Parameters:
      `str` - String to look for characters in, may be null
      `set` - String[] set of characters to identify, may be null
    Returns:
      whether or not the characters in the set are in the primary string
    Since:
      3.2
    See Also:
      - for set-syntax.

  - ### count

    public static int count(String str, String... set)
    Takes an argument in set-syntax, see evaluateSet, and returns the number of characters present in the specified string.

        CharSetUtils.count(null, *)        = 0
        CharSetUtils.count("", *)          = 0
        CharSetUtils.count(*, null)        = 0
        CharSetUtils.count(*, "")          = 0
        CharSetUtils.count("hello", "k-p") = 3
        CharSetUtils.count("hello", "a-e") = 1

    Parameters:
      `str` - String to count characters in, may be null
      `set` - String[] set of characters to count, may be null
    Returns:
      the character count, zero if null string input
    See Also:
      - for set-syntax.

  - ### delete

    public static String delete(String str, String... set)
    Takes an argument in set-syntax, see evaluateSet, and deletes any of characters present in the specified string.

        CharSetUtils.delete(null, *)        = null
        CharSetUtils.delete("", *)          = ""
        CharSetUtils.delete(*, null)        = *
        CharSetUtils.delete(*, "")          = *
        CharSetUtils.delete("hello", "hl")  = "eo"
        CharSetUtils.delete("hello", "le")  = "ho"

    Parameters:
      `str` - String to delete characters from, may be null
      `set` - String[] set of characters to delete, may be null
    Returns:
      the modified String, `null` if null string input
    See Also:
      - for set-syntax.

  - ### keep

    public static String keep(String str, String... set)
    Takes an argument in set-syntax, see evaluateSet, and keeps any of characters present in the specified string.

        CharSetUtils.keep(null, *)        = null
        CharSetUtils.keep("", *)          = ""
        CharSetUtils.keep(*, null)        = ""
        CharSetUtils.keep(*, "")          = ""
        CharSetUtils.keep("hello", "hl")  = "hll"
        CharSetUtils.keep("hello", "le")  = "ell"

    Parameters:
      `str` - String to keep characters from, may be null
      `set` - String[] set of characters to keep, may be null
    Returns:
      the modified String, `null` if null string input
    Since:
      2.0
    See Also:
      - for set-syntax.

  - ### squeeze

    public static String squeeze(String str, String... set)
    Squeezes any repetitions of a character that is mentioned in the supplied set.

        CharSetUtils.squeeze(null, *)        = null
        CharSetUtils.squeeze("", *)          = ""
        CharSetUtils.squeeze(*, null)        = *
        CharSetUtils.squeeze(*, "")          = *
        CharSetUtils.squeeze("hello", "k-p") = "helo"
        CharSetUtils.squeeze("hello", "a-e") = "hello"

    Parameters:
      `str` - the string to squeeze, may be null
      `set` - the character set to use for manipulation, may be null
    Returns:
      the modified String, `null` if null string input
    See Also:
      - for set-syntax.