Hex (Encode/Decode Utilities (Version 1.10))
Date: 2019-08-31

org.apache.commons.codec.binary

## Class Hex

- java.lang.Object
- - org.apache.commons.codec.binary.Hex

- All Implemented Interfaces:
    BinaryDecoder, BinaryEncoder, Decoder, Encoder

      public class Hex
      extends java.lang.Object
      implements BinaryEncoder, BinaryDecoder

  Converts hexadecimal Strings. The charset used for certain operation can be set, the default is set in `DEFAULT_CHARSET_NAME` This class is thread-safe.
  Since:
    1.1
  Version:
    $Id: Hex.java 1619948 2014-08-22 22:53:55Z ggregory $

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private java.nio.charset.Charset` | `charset`
    `static java.nio.charset.Charset` | `DEFAULT_CHARSET` Default charset name is `Charsets.UTF_8`
    `static java.lang.String` | `DEFAULT_CHARSET_NAME` Default charset name is `CharEncoding.UTF_8`
    `private static char[]` | `DIGITS_LOWER` Used to build output as Hex
    `private static char[]` | `DIGITS_UPPER` Used to build output as Hex

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Hex()` Creates a new codec with the default charset name `DEFAULT_CHARSET`
    `Hex(java.nio.charset.Charset charset)` Creates a new codec with the given Charset.
    `Hex(java.lang.String charsetName)` Creates a new codec with the given charset name.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `decode(byte[] array)` Converts an array of character bytes representing hexadecimal values into an array of bytes of those same values.
    `java.lang.Object` | `decode(java.lang.Object object)` Converts a String or an array of character bytes representing hexadecimal values into an array of bytes of those same values.
    `static byte[]` | `decodeHex(char[] data)` Converts an array of characters representing hexadecimal values into an array of bytes of those same values.
    `byte[]` | `encode(byte[] array)` Converts an array of bytes into an array of bytes for the characters representing the hexadecimal values of each byte in order.
    `java.lang.Object` | `encode(java.lang.Object object)` Converts a String or an array of bytes into an array of characters representing the hexadecimal values of each byte in order.
    `static char[]` | `encodeHex(byte[] data)` Converts an array of bytes into an array of characters representing the hexadecimal values of each byte in order.
    `static char[]` | `encodeHex(byte[] data, boolean toLowerCase)` Converts an array of bytes into an array of characters representing the hexadecimal values of each byte in order.
    `protected static char[]` | `encodeHex(byte[] data, char[] toDigits)` Converts an array of bytes into an array of characters representing the hexadecimal values of each byte in order.
    `static java.lang.String` | `encodeHexString(byte[] data)` Converts an array of bytes into a String representing the hexadecimal values of each byte in order.
    `java.nio.charset.Charset` | `getCharset()` Gets the charset.
    `java.lang.String` | `getCharsetName()` Gets the charset name.
    `protected static int` | `toDigit(char ch, int index)` Converts a hexadecimal character to an integer.
    `java.lang.String` | `toString()` Returns a string representation of the object, which includes the charset name.

    - ### Methods inherited from class java.lang.Object

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

- - ### Field Detail

    - #### DEFAULT_CHARSET

          public static final java.nio.charset.Charset DEFAULT_CHARSET

      Default charset name is `Charsets.UTF_8`
      Since:
        1.7

    - #### DEFAULT_CHARSET_NAME

          public static final java.lang.String DEFAULT_CHARSET_NAME

      Default charset name is `CharEncoding.UTF_8`
      Since:
        1.4
      See Also:
        Constant Field Values

    - #### DIGITS_LOWER

          private static final char[] DIGITS_LOWER

      Used to build output as Hex

    - #### DIGITS_UPPER

          private static final char[] DIGITS_UPPER

      Used to build output as Hex

    - #### charset

          private final java.nio.charset.Charset charset

  - ### Constructor Detail

    - #### Hex

          public Hex()

      Creates a new codec with the default charset name `DEFAULT_CHARSET`

    - #### Hex

          public Hex(java.nio.charset.Charset charset)

      Creates a new codec with the given Charset.
      Parameters:
        `charset` - the charset.
      Since:
        1.7

    - #### Hex

          public Hex(java.lang.String charsetName)

      Creates a new codec with the given charset name.
      Parameters:
        `charsetName` - the charset name.
      Throws:
        `java.nio.charset.UnsupportedCharsetException` - If the named charset is unavailable
      Since:
        1.4, 1.7 throws UnsupportedCharsetException if the named charset is unavailable

  - ### Method Detail

    - #### decodeHex

          public static byte[] decodeHex(char[] data)
                                  throws DecoderException

      Converts an array of characters representing hexadecimal values into an array of bytes of those same values. The returned array will be half the length of the passed array, as it takes two characters to represent any given byte. An exception is thrown if the passed char array has an odd number of elements.
      Parameters:
        `data` - An array of characters containing hexadecimal digits
      Returns:
        A byte array containing binary data decoded from the supplied char array.
      Throws:
        `DecoderException` - Thrown if an odd number or illegal of characters is supplied

    - #### encodeHex

          public static char[] encodeHex(byte[] data)

      Converts an array of bytes into an array of characters representing the hexadecimal values of each byte in order. The returned array will be double the length of the passed array, as it takes two characters to represent any given byte.
      Parameters:
        `data` - a byte[] to convert to Hex characters
      Returns:
        A char[] containing hexadecimal characters

    - #### encodeHex

          public static char[] encodeHex(byte[] data,
                                         boolean toLowerCase)

      Converts an array of bytes into an array of characters representing the hexadecimal values of each byte in order. The returned array will be double the length of the passed array, as it takes two characters to represent any given byte.
      Parameters:
        `data` - a byte[] to convert to Hex characters
        `toLowerCase` - `true` converts to lowercase, `false` to uppercase
      Returns:
        A char[] containing hexadecimal characters
      Since:
        1.4

    - #### encodeHex

          protected static char[] encodeHex(byte[] data,
                                            char[] toDigits)

      Converts an array of bytes into an array of characters representing the hexadecimal values of each byte in order. The returned array will be double the length of the passed array, as it takes two characters to represent any given byte.
      Parameters:
        `data` - a byte[] to convert to Hex characters
        `toDigits` - the output alphabet
      Returns:
        A char[] containing hexadecimal characters
      Since:
        1.4

    - #### encodeHexString

          public static java.lang.String encodeHexString(byte[] data)

      Converts an array of bytes into a String representing the hexadecimal values of each byte in order. The returned String will be double the length of the passed array, as it takes two characters to represent any given byte.
      Parameters:
        `data` - a byte[] to convert to Hex characters
      Returns:
        A String containing hexadecimal characters
      Since:
        1.4

    - #### toDigit

          protected static int toDigit(char ch,
                                       int index)
                                throws DecoderException

      Converts a hexadecimal character to an integer.
      Parameters:
        `ch` - A character to convert to an integer digit
        `index` - The index of the character in the source
      Returns:
        An integer
      Throws:
        `DecoderException` - Thrown if ch is an illegal hex character

    - #### decode

          public byte[] decode(byte[] array)
                        throws DecoderException

      Converts an array of character bytes representing hexadecimal values into an array of bytes of those same values. The returned array will be half the length of the passed array, as it takes two characters to represent any given byte. An exception is thrown if the passed char array has an odd number of elements.
      Specified by:
        `decode` in interface `BinaryDecoder`
      Parameters:
        `array` - An array of character bytes containing hexadecimal digits
      Returns:
        A byte array containing binary data decoded from the supplied byte array (representing characters).
      Throws:
        `DecoderException` - Thrown if an odd number of characters is supplied to this function
      See Also:
        `decodeHex(char[])`

    - #### decode

          public java.lang.Object decode(java.lang.Object object)
                                  throws DecoderException

      Converts a String or an array of character bytes representing hexadecimal values into an array of bytes of those same values. The returned array will be half the length of the passed String or array, as it takes two characters to represent any given byte. An exception is thrown if the passed char array has an odd number of elements.
      Specified by:
        `decode` in interface `Decoder`
      Parameters:
        `object` - A String or, an array of character bytes containing hexadecimal digits
      Returns:
        A byte array containing binary data decoded from the supplied byte array (representing characters).
      Throws:
        `DecoderException` - Thrown if an odd number of characters is supplied to this function or the object is not a String or char[]
      See Also:
        `decodeHex(char[])`

    - #### encode

          public byte[] encode(byte[] array)

      Converts an array of bytes into an array of bytes for the characters representing the hexadecimal values of each byte in order. The returned array will be double the length of the passed array, as it takes two characters to represent any given byte.

      The conversion from hexadecimal characters to the returned bytes is performed with the charset named by `getCharset()`.

      Specified by:
        `encode` in interface `BinaryEncoder`
      Parameters:
        `array` - a byte[] to convert to Hex characters
      Returns:
        A byte[] containing the bytes of the hexadecimal characters
      Since:
        1.7 No longer throws IllegalStateException if the charsetName is invalid.
      See Also:
        `encodeHex(byte[])`

    - #### encode

          public java.lang.Object encode(java.lang.Object object)
                                  throws EncoderException

      Converts a String or an array of bytes into an array of characters representing the hexadecimal values of each byte in order. The returned array will be double the length of the passed String or array, as it takes two characters to represent any given byte.

      The conversion from hexadecimal characters to bytes to be encoded to performed with the charset named by `getCharset()`.

      Specified by:
        `encode` in interface `Encoder`
      Parameters:
        `object` - a String, or byte[] to convert to Hex characters
      Returns:
        A char[] containing hexadecimal characters
      Throws:
        `EncoderException` - Thrown if the given object is not a String or byte[]
      See Also:
        `encodeHex(byte[])`

    - #### getCharset

          public java.nio.charset.Charset getCharset()

      Gets the charset.
      Returns:
        the charset.
      Since:
        1.7

    - #### getCharsetName

          public java.lang.String getCharsetName()

      Gets the charset name.
      Returns:
        the charset name.
      Since:
        1.4

    - #### toString

          public java.lang.String toString()

      Returns a string representation of the object, which includes the charset name.
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        a string representation of the object.

commons-codec version 1.10 - Copyright © 2002-2019 - Apache Software Foundation