Class StringUtils

java.lang.Object
org.apache.commons.codec.binary.StringUtils

public class StringUtils extends Object
Converts String to and from bytes using the encodings required by the Java specification. These encodings are specified in standard Charset.

This class is immutable and thread-safe.

Since:
1.4
See Also:
  • Constructor Details

    • StringUtils

      public StringUtils()
  • Method Details

    • equals

      public static boolean equals(CharSequence cs1, CharSequence cs2)

      Compares two CharSequences, returning true if they represent equal sequences of characters.

      nulls are handled without exceptions. Two null references are considered to be equal. The comparison is case sensitive.

       StringUtils.equals(null, null)   = true
       StringUtils.equals(null, "abc")  = false
       StringUtils.equals("abc", null)  = false
       StringUtils.equals("abc", "abc") = true
       StringUtils.equals("abc", "ABC") = false
       

      Copied from Apache Commons Lang r1583482 on April 10, 2014 (day of 3.3.2 release).

      Parameters:
      cs1 - the first CharSequence, may be null
      cs2 - the second CharSequence, may be null
      Returns:
      true if the CharSequences are equal (case-sensitive), or both null
      Since:
      1.10
      See Also:
    • getByteBuffer

      private static ByteBuffer getByteBuffer(String string, Charset charset)
      Parameters:
      string - The string to encode (if null, return null).
      charset - The Charset to encode the String
      Returns:
      the encoded bytes
    • getByteBufferUtf8

      public static ByteBuffer getByteBufferUtf8(String string)
      Encodes the given string into a byte buffer using the UTF-8 charset, storing the result into a new byte array.
      Parameters:
      string - the String to encode, may be null
      Returns:
      encoded bytes, or null if the input string was null
      Throws:
      NullPointerException - Thrown if StandardCharsets.UTF_8 is not initialized, which should never happen since it is required by the Java platform specification.
      Since:
      1.11
      See Also:
    • getBytes

      private static byte[] getBytes(String string, Charset charset)
      Parameters:
      string - The string to encode (if null, return null).
      charset - The Charset to encode the String
      Returns:
      the encoded bytes
    • getBytesIso8859_1

      public static byte[] getBytesIso8859_1(String string)
      Encodes the given string into a sequence of bytes using the ISO-8859-1 charset, storing the result into a new byte array.
      Parameters:
      string - the String to encode, may be null
      Returns:
      encoded bytes, or null if the input string was null
      Throws:
      NullPointerException - Thrown if StandardCharsets.ISO_8859_1 is not initialized, which should never happen since it is required by the Java platform specification.
      Since:
      As of 1.7, throws NullPointerException instead of UnsupportedEncodingException
      See Also:
    • getBytesUnchecked

      public static byte[] getBytesUnchecked(String string, String charsetName)
      Encodes the given string into a sequence of bytes using the named charset, storing the result into a new byte array.

      This method catches UnsupportedEncodingException and rethrows it as IllegalStateException, which should never happen for a required charset name. Use this method when the encoding is required to be in the JRE.

      Parameters:
      string - the String to encode, may be null
      charsetName - The name of a required Charset
      Returns:
      encoded bytes, or null if the input string was null
      Throws:
      IllegalStateException - Thrown when a UnsupportedEncodingException is caught, which should never happen for a required charset name.
      See Also:
    • getBytesUsAscii

      public static byte[] getBytesUsAscii(String string)
      Encodes the given string into a sequence of bytes using the US-ASCII charset, storing the result into a new byte array.
      Parameters:
      string - the String to encode, may be null
      Returns:
      encoded bytes, or null if the input string was null
      Throws:
      NullPointerException - Thrown if StandardCharsets.US_ASCII is not initialized, which should never happen since it is required by the Java platform specification.
      Since:
      As of 1.7, throws NullPointerException instead of UnsupportedEncodingException
      See Also:
    • getBytesUtf16

      public static byte[] getBytesUtf16(String string)
      Encodes the given string into a sequence of bytes using the UTF-16 charset, storing the result into a new byte array.
      Parameters:
      string - the String to encode, may be null
      Returns:
      encoded bytes, or null if the input string was null
      Throws:
      NullPointerException - Thrown if StandardCharsets.UTF_16 is not initialized, which should never happen since it is required by the Java platform specification.
      Since:
      As of 1.7, throws NullPointerException instead of UnsupportedEncodingException
      See Also:
    • getBytesUtf16Be

      public static byte[] getBytesUtf16Be(String string)
      Encodes the given string into a sequence of bytes using the UTF-16BE charset, storing the result into a new byte array.
      Parameters:
      string - the String to encode, may be null
      Returns:
      encoded bytes, or null if the input string was null
      Throws:
      NullPointerException - Thrown if StandardCharsets.UTF_16BE is not initialized, which should never happen since it is required by the Java platform specification.
      Since:
      As of 1.7, throws NullPointerException instead of UnsupportedEncodingException
      See Also:
    • getBytesUtf16Le

      public static byte[] getBytesUtf16Le(String string)
      Encodes the given string into a sequence of bytes using the UTF-16LE charset, storing the result into a new byte array.
      Parameters:
      string - the String to encode, may be null
      Returns:
      encoded bytes, or null if the input string was null
      Throws:
      NullPointerException - Thrown if StandardCharsets.UTF_16LE is not initialized, which should never happen since it is required by the Java platform specification.
      Since:
      As of 1.7, throws NullPointerException instead of UnsupportedEncodingException
      See Also:
    • getBytesUtf8

      public static byte[] getBytesUtf8(String string)
      Encodes the given string into a sequence of bytes using the UTF-8 charset, storing the result into a new byte array.
      Parameters:
      string - the String to encode, may be null
      Returns:
      encoded bytes, or null if the input string was null
      Throws:
      NullPointerException - Thrown if StandardCharsets.UTF_8 is not initialized, which should never happen since it is required by the Java platform specification.
      Since:
      As of 1.7, throws NullPointerException instead of UnsupportedEncodingException
      See Also:
    • newIllegalStateException

      private static IllegalStateException newIllegalStateException(String charsetName, UnsupportedEncodingException e)
    • newString

      private static String newString(byte[] bytes, Charset charset)
      Constructs a new String by decoding the specified array of bytes using the given charset.
      Parameters:
      bytes - The bytes to be decoded into characters
      charset - The Charset to encode the String; not null
      Returns:
      A new String decoded from the specified array of bytes using the given charset, or null if the input byte array was null.
      Throws:
      NullPointerException - Thrown if charset is null
    • newString

      public static String newString(byte[] bytes, String charsetName)
      Constructs a new String by decoding the specified array of bytes using the given charset.

      This method catches UnsupportedEncodingException and re-throws it as IllegalStateException, which should never happen for a required charset name. Use this method when the encoding is required to be in the JRE.

      Parameters:
      bytes - The bytes to be decoded into characters, may be null
      charsetName - The name of a required Charset
      Returns:
      A new String decoded from the specified array of bytes using the given charset, or null if the input byte array was null.
      Throws:
      IllegalStateException - Thrown when a UnsupportedEncodingException is caught, which should never happen for a required charset name.
      See Also:
    • newStringIso8859_1

      public static String newStringIso8859_1(byte[] bytes)
      Constructs a new String by decoding the specified array of bytes using the ISO-8859-1 charset.
      Parameters:
      bytes - The bytes to be decoded into characters, may be null
      Returns:
      A new String decoded from the specified array of bytes using the ISO-8859-1 charset, or null if the input byte array was null.
      Throws:
      NullPointerException - Thrown if StandardCharsets.ISO_8859_1 is not initialized, which should never happen since it is required by the Java platform specification.
      Since:
      As of 1.7, throws NullPointerException instead of UnsupportedEncodingException
    • newStringUsAscii

      public static String newStringUsAscii(byte[] bytes)
      Constructs a new String by decoding the specified array of bytes using the US-ASCII charset.
      Parameters:
      bytes - The bytes to be decoded into characters
      Returns:
      A new String decoded from the specified array of bytes using the US-ASCII charset, or null if the input byte array was null.
      Throws:
      NullPointerException - Thrown if StandardCharsets.US_ASCII is not initialized, which should never happen since it is required by the Java platform specification.
      Since:
      As of 1.7, throws NullPointerException instead of UnsupportedEncodingException
    • newStringUtf16

      public static String newStringUtf16(byte[] bytes)
      Constructs a new String by decoding the specified array of bytes using the UTF-16 charset.
      Parameters:
      bytes - The bytes to be decoded into characters
      Returns:
      A new String decoded from the specified array of bytes using the UTF-16 charset or null if the input byte array was null.
      Throws:
      NullPointerException - Thrown if StandardCharsets.UTF_16 is not initialized, which should never happen since it is required by the Java platform specification.
      Since:
      As of 1.7, throws NullPointerException instead of UnsupportedEncodingException
    • newStringUtf16Be

      public static String newStringUtf16Be(byte[] bytes)
      Constructs a new String by decoding the specified array of bytes using the UTF-16BE charset.
      Parameters:
      bytes - The bytes to be decoded into characters
      Returns:
      A new String decoded from the specified array of bytes using the UTF-16BE charset, or null if the input byte array was null.
      Throws:
      NullPointerException - Thrown if StandardCharsets.UTF_16BE is not initialized, which should never happen since it is required by the Java platform specification.
      Since:
      As of 1.7, throws NullPointerException instead of UnsupportedEncodingException
    • newStringUtf16Le

      public static String newStringUtf16Le(byte[] bytes)
      Constructs a new String by decoding the specified array of bytes using the UTF-16LE charset.
      Parameters:
      bytes - The bytes to be decoded into characters
      Returns:
      A new String decoded from the specified array of bytes using the UTF-16LE charset, or null if the input byte array was null.
      Throws:
      NullPointerException - Thrown if StandardCharsets.UTF_16LE is not initialized, which should never happen since it is required by the Java platform specification.
      Since:
      As of 1.7, throws NullPointerException instead of UnsupportedEncodingException
    • newStringUtf8

      public static String newStringUtf8(byte[] bytes)
      Constructs a new String by decoding the specified array of bytes using the UTF-8 charset.
      Parameters:
      bytes - The bytes to be decoded into characters
      Returns:
      A new String decoded from the specified array of bytes using the UTF-8 charset, or null if the input byte array was null.
      Throws:
      NullPointerException - Thrown if StandardCharsets.UTF_8 is not initialized, which should never happen since it is required by the Java platform specification.
      Since:
      As of 1.7, throws NullPointerException instead of UnsupportedEncodingException