Class StringUtil

java.lang.Object
io.netty.util.internal.StringUtil

public final class StringUtil extends java.lang.Object
String utility class.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final java.lang.String[]
     
    private static final java.lang.String[]
     
    static final char
     
    static final char
     
    private static final int
    2 - Quote character at beginning and end.
    static final char
     
    static final java.lang.String
     
    private static final byte[]
     
    static final char
     
    static final java.lang.String
     
    private static final char
     
    static final char
     
    static final char
     
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static java.lang.String
    byteToHexString(int value)
    Converts the specified byte value into a hexadecimal integer.
    static <T extends java.lang.Appendable>
    T
    byteToHexString(T buf, int value)
    Converts the specified byte value into a hexadecimal integer and appends it to the specified buffer.
    static java.lang.String
    Converts the specified byte value into a 2-digit hexadecimal integer.
    static <T extends java.lang.Appendable>
    T
    byteToHexStringPadded(T buf, int value)
    Converts the specified byte value into a 2-digit hexadecimal integer and appends it to the specified buffer.
    static java.lang.String
    className(java.lang.Object o)
    Generates a class name from a Class.
    static boolean
    commonSuffixOfLength(java.lang.String s, java.lang.String p, int len)
    Checks if two strings have the same suffix of specified length
    static byte
    decodeHexByte(java.lang.CharSequence s, int pos)
    Decode a 2-digit hex byte from within a string.
    static byte[]
    decodeHexDump(java.lang.CharSequence hexDump)
    Decodes a hex dump
    static byte[]
    decodeHexDump(java.lang.CharSequence hexDump, int fromIndex, int length)
    Decodes part of a string with hex dump
    static int
    Helper to decode half of a hexadecimal number from a string.
    static int
    Helper to decode half of a hexadecimal number from a string.
    static boolean
    endsWith(java.lang.CharSequence s, char c)
    Determine if the string s ends with the char c.
    static java.lang.CharSequence
    escapeCsv(java.lang.CharSequence value)
    Escapes the specified value, if necessary according to RFC-4180.
    static java.lang.CharSequence
    escapeCsv(java.lang.CharSequence value, boolean trimWhiteSpace)
    Escapes the specified value, if necessary according to RFC-4180.
    private static int
    indexOfFirstNonOwsChar(java.lang.CharSequence value, int length)
     
    private static int
    indexOfLastNonOwsChar(java.lang.CharSequence value, int start, int length)
     
    static int
    indexOfNonWhiteSpace(java.lang.CharSequence seq, int offset)
    Find the index of the first non-white space character in s starting at offset.
    static int
    indexOfWhiteSpace(java.lang.CharSequence seq, int offset)
    Find the index of the first white space character in s starting at offset.
    private static boolean
    isDoubleQuote(char c)
     
    static boolean
    isNullOrEmpty(java.lang.String s)
    Determine if a string is null or String.isEmpty() returns true.
    private static boolean
    isOws(char c)
     
    static boolean
    isSurrogate(char c)
    Determine if c lies within the range of values defined for Surrogate Code Point.
    static java.lang.CharSequence
    join(java.lang.CharSequence separator, java.lang.Iterable<? extends java.lang.CharSequence> elements)
    Returns a char sequence that contains all elements joined by a given separator.
    static int
    length(java.lang.String s)
    Get the length of a string, null input is considered 0 length.
    private static java.lang.IllegalArgumentException
    newInvalidEscapedCsvFieldException(java.lang.CharSequence value, int index)
     
    static java.lang.String
    simpleClassName(java.lang.Class<?> clazz)
    Generates a simplified name from a Class.
    static java.lang.String
    simpleClassName(java.lang.Object o)
    static java.lang.String
    substringAfter(java.lang.String value, char delim)
    Get the item after one char delim if the delim is found (else null).
    static java.lang.String
    substringBefore(java.lang.String value, char delim)
    Get the item before one char delim if the delim is found (else null).
    static java.lang.String
    toHexString(byte[] src)
    Converts the specified byte array into a hexadecimal value.
    static java.lang.String
    toHexString(byte[] src, int offset, int length)
    Converts the specified byte array into a hexadecimal value.
    static <T extends java.lang.Appendable>
    T
    toHexString(T dst, byte[] src)
    Converts the specified byte array into a hexadecimal value and appends it to the specified buffer.
    static <T extends java.lang.Appendable>
    T
    toHexString(T dst, byte[] src, int offset, int length)
    Converts the specified byte array into a hexadecimal value and appends it to the specified buffer.
    static java.lang.String
    toHexStringPadded(byte[] src)
    Converts the specified byte array into a hexadecimal value.
    static java.lang.String
    toHexStringPadded(byte[] src, int offset, int length)
    Converts the specified byte array into a hexadecimal value.
    static <T extends java.lang.Appendable>
    T
    toHexStringPadded(T dst, byte[] src)
    Converts the specified byte array into a hexadecimal value and appends it to the specified buffer.
    static <T extends java.lang.Appendable>
    T
    toHexStringPadded(T dst, byte[] src, int offset, int length)
    Converts the specified byte array into a hexadecimal value and appends it to the specified buffer.
    static java.lang.CharSequence
    trimOws(java.lang.CharSequence value)
    Trim optional white-space characters from the specified value, according to RFC-7230.
    static java.lang.CharSequence
    unescapeCsv(java.lang.CharSequence value)
    Unescapes the specified escaped CSV field, if necessary according to RFC-4180.
    static java.util.List<java.lang.CharSequence>
    unescapeCsvFields(java.lang.CharSequence value)
    Unescapes the specified escaped CSV fields according to RFC-4180.
    private static void
    validateCsvFormat(java.lang.CharSequence value)
    Validate if value is a valid csv field without double-quotes.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • EMPTY_STRING

      public static final java.lang.String EMPTY_STRING
      See Also:
    • NEWLINE

      public static final java.lang.String NEWLINE
    • DOUBLE_QUOTE

      public static final char DOUBLE_QUOTE
      See Also:
    • COMMA

      public static final char COMMA
      See Also:
    • LINE_FEED

      public static final char LINE_FEED
      See Also:
    • CARRIAGE_RETURN

      public static final char CARRIAGE_RETURN
      See Also:
    • TAB

      public static final char TAB
      See Also:
    • SPACE

      public static final char SPACE
      See Also:
    • BYTE2HEX_PAD

      private static final java.lang.String[] BYTE2HEX_PAD
    • BYTE2HEX_NOPAD

      private static final java.lang.String[] BYTE2HEX_NOPAD
    • HEX2B

      private static final byte[] HEX2B
    • CSV_NUMBER_ESCAPE_CHARACTERS

      private static final int CSV_NUMBER_ESCAPE_CHARACTERS
      2 - Quote character at beginning and end. 5 - Extra allowance for anticipated escape characters that may be added.
      See Also:
    • PACKAGE_SEPARATOR_CHAR

      private static final char PACKAGE_SEPARATOR_CHAR
      See Also:
  • Constructor Details

    • StringUtil

      private StringUtil()
  • Method Details

    • substringAfter

      public static java.lang.String substringAfter(java.lang.String value, char delim)
      Get the item after one char delim if the delim is found (else null). This operation is a simplified and optimized version of String.split(String, int).
    • substringBefore

      public static java.lang.String substringBefore(java.lang.String value, char delim)
      Get the item before one char delim if the delim is found (else null). This operation is a simplified and optimized version of String.split(String, int).
    • commonSuffixOfLength

      public static boolean commonSuffixOfLength(java.lang.String s, java.lang.String p, int len)
      Checks if two strings have the same suffix of specified length
      Parameters:
      s - string
      p - string
      len - length of the common suffix
      Returns:
      true if both s and p are not null and both have the same suffix. Otherwise - false
    • byteToHexStringPadded

      public static java.lang.String byteToHexStringPadded(int value)
      Converts the specified byte value into a 2-digit hexadecimal integer.
    • byteToHexStringPadded

      public static <T extends java.lang.Appendable> T byteToHexStringPadded(T buf, int value)
      Converts the specified byte value into a 2-digit hexadecimal integer and appends it to the specified buffer.
    • toHexStringPadded

      public static java.lang.String toHexStringPadded(byte[] src)
      Converts the specified byte array into a hexadecimal value.
    • toHexStringPadded

      public static java.lang.String toHexStringPadded(byte[] src, int offset, int length)
      Converts the specified byte array into a hexadecimal value.
    • toHexStringPadded

      public static <T extends java.lang.Appendable> T toHexStringPadded(T dst, byte[] src)
      Converts the specified byte array into a hexadecimal value and appends it to the specified buffer.
    • toHexStringPadded

      public static <T extends java.lang.Appendable> T toHexStringPadded(T dst, byte[] src, int offset, int length)
      Converts the specified byte array into a hexadecimal value and appends it to the specified buffer.
    • byteToHexString

      public static java.lang.String byteToHexString(int value)
      Converts the specified byte value into a hexadecimal integer.
    • byteToHexString

      public static <T extends java.lang.Appendable> T byteToHexString(T buf, int value)
      Converts the specified byte value into a hexadecimal integer and appends it to the specified buffer.
    • toHexString

      public static java.lang.String toHexString(byte[] src)
      Converts the specified byte array into a hexadecimal value.
    • toHexString

      public static java.lang.String toHexString(byte[] src, int offset, int length)
      Converts the specified byte array into a hexadecimal value.
    • toHexString

      public static <T extends java.lang.Appendable> T toHexString(T dst, byte[] src)
      Converts the specified byte array into a hexadecimal value and appends it to the specified buffer.
    • toHexString

      public static <T extends java.lang.Appendable> T toHexString(T dst, byte[] src, int offset, int length)
      Converts the specified byte array into a hexadecimal value and appends it to the specified buffer.
    • decodeHexNibble

      public static int decodeHexNibble(char c)
      Helper to decode half of a hexadecimal number from a string.
      Parameters:
      c - The ASCII character of the hexadecimal number to decode. Must be in the range [0-9a-fA-F].
      Returns:
      The hexadecimal value represented in the ASCII character given, or -1 if the character is invalid.
    • decodeHexNibble

      public static int decodeHexNibble(byte b)
      Helper to decode half of a hexadecimal number from a string.
      Parameters:
      b - The ASCII character of the hexadecimal number to decode. Must be in the range [0-9a-fA-F].
      Returns:
      The hexadecimal value represented in the ASCII character given, or -1 if the character is invalid.
    • decodeHexByte

      public static byte decodeHexByte(java.lang.CharSequence s, int pos)
      Decode a 2-digit hex byte from within a string.
    • decodeHexDump

      public static byte[] decodeHexDump(java.lang.CharSequence hexDump, int fromIndex, int length)
      Decodes part of a string with hex dump
      Parameters:
      hexDump - a CharSequence which contains the hex dump
      fromIndex - start of hex dump in hexDump
      length - hex string length
    • decodeHexDump

      public static byte[] decodeHexDump(java.lang.CharSequence hexDump)
      Decodes a hex dump
    • className

      public static java.lang.String className(java.lang.Object o)
      Generates a class name from a Class. Similar to Class.getName(), but null-safe.
    • simpleClassName

      public static java.lang.String simpleClassName(java.lang.Object o)
    • simpleClassName

      public static java.lang.String simpleClassName(java.lang.Class<?> clazz)
      Generates a simplified name from a Class. Similar to Class.getSimpleName(), but it works fine with anonymous classes.
    • escapeCsv

      public static java.lang.CharSequence escapeCsv(java.lang.CharSequence value)
      Escapes the specified value, if necessary according to RFC-4180.
      Parameters:
      value - The value which will be escaped according to RFC-4180
      Returns:
      CharSequence the escaped value if necessary, or the value unchanged
    • escapeCsv

      public static java.lang.CharSequence escapeCsv(java.lang.CharSequence value, boolean trimWhiteSpace)
      Escapes the specified value, if necessary according to RFC-4180.
      Parameters:
      value - The value which will be escaped according to RFC-4180
      trimWhiteSpace - The value will first be trimmed of its optional white-space characters, according to RFC-7230
      Returns:
      CharSequence the escaped value if necessary, or the value unchanged
    • unescapeCsv

      public static java.lang.CharSequence unescapeCsv(java.lang.CharSequence value)
      Unescapes the specified escaped CSV field, if necessary according to RFC-4180.
      Parameters:
      value - The escaped CSV field which will be unescaped according to RFC-4180
      Returns:
      CharSequence the unescaped value if necessary, or the value unchanged
    • unescapeCsvFields

      public static java.util.List<java.lang.CharSequence> unescapeCsvFields(java.lang.CharSequence value)
      Unescapes the specified escaped CSV fields according to RFC-4180.
      Parameters:
      value - A string with multiple CSV escaped fields which will be unescaped according to RFC-4180
      Returns:
      List the list of unescaped fields
    • validateCsvFormat

      private static void validateCsvFormat(java.lang.CharSequence value)
      Validate if value is a valid csv field without double-quotes.
      Throws:
      java.lang.IllegalArgumentException - if value needs to be encoded with double-quotes.
    • newInvalidEscapedCsvFieldException

      private static java.lang.IllegalArgumentException newInvalidEscapedCsvFieldException(java.lang.CharSequence value, int index)
    • length

      public static int length(java.lang.String s)
      Get the length of a string, null input is considered 0 length.
    • isNullOrEmpty

      public static boolean isNullOrEmpty(java.lang.String s)
      Determine if a string is null or String.isEmpty() returns true.
    • indexOfNonWhiteSpace

      public static int indexOfNonWhiteSpace(java.lang.CharSequence seq, int offset)
      Find the index of the first non-white space character in s starting at offset.
      Parameters:
      seq - The string to search.
      offset - The offset to start searching at.
      Returns:
      the index of the first non-white space character or <-1 if none was found.
    • indexOfWhiteSpace

      public static int indexOfWhiteSpace(java.lang.CharSequence seq, int offset)
      Find the index of the first white space character in s starting at offset.
      Parameters:
      seq - The string to search.
      offset - The offset to start searching at.
      Returns:
      the index of the first white space character or <-1 if none was found.
    • isSurrogate

      public static boolean isSurrogate(char c)
      Determine if c lies within the range of values defined for Surrogate Code Point.
      Parameters:
      c - the character to check.
      Returns:
      true if c lies within the range of values defined for Surrogate Code Point. false otherwise.
    • isDoubleQuote

      private static boolean isDoubleQuote(char c)
    • endsWith

      public static boolean endsWith(java.lang.CharSequence s, char c)
      Determine if the string s ends with the char c.
      Parameters:
      s - the string to test
      c - the tested char
      Returns:
      true if s ends with the char c
    • trimOws

      public static java.lang.CharSequence trimOws(java.lang.CharSequence value)
      Trim optional white-space characters from the specified value, according to RFC-7230.
      Parameters:
      value - the value to trim
      Returns:
      CharSequence the trimmed value if necessary, or the value unchanged
    • join

      public static java.lang.CharSequence join(java.lang.CharSequence separator, java.lang.Iterable<? extends java.lang.CharSequence> elements)
      Returns a char sequence that contains all elements joined by a given separator.
      Parameters:
      separator - for each element
      elements - to join together
      Returns:
      a char sequence joined by a given separator.
    • indexOfFirstNonOwsChar

      private static int indexOfFirstNonOwsChar(java.lang.CharSequence value, int length)
      Returns:
      length if no OWS is found.
    • indexOfLastNonOwsChar

      private static int indexOfLastNonOwsChar(java.lang.CharSequence value, int start, int length)
      Returns:
      start if no OWS is found.
    • isOws

      private static boolean isOws(char c)