Class StringUtil


  • public class StringUtil
    extends java.lang.Object
    A set of public static methods for dealing with Strings
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static char[] hex_table  
    • Constructor Summary

      Constructors 
      Constructor Description
      StringUtil()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String compressQuotes​(java.lang.String source, java.lang.String quotes)
      Compress 2 adjacent (single or double) quotes into a single (s or d) quote when found in the middle of a String.
      private static java.lang.String doRegExpA​(java.lang.String src, java.lang.String indent)
      Reg.exp substitute:
      private static java.lang.String doRegExpB​(java.lang.String src)
      Reg.exp substitute:
      private static java.lang.String doRegExpC​(java.lang.String src, java.lang.String indent)
      Reg.exp substitute:
      static java.lang.String ensureIndent​(java.lang.String formatted, int depth)
      Utility for formatting which bends a multi-line string into shape for outputting it in a context where there is depth tabs.
      static java.lang.String formatForPrint​(java.lang.String input)
      Used to print out a string for error messages, chops is off at 60 chars for historical reasons.
      static byte[] fromHexString​(java.lang.String s, int offset, int length)
      Convert a hexidecimal string generated by toHexString() back into a byte array.
      static byte[] getAsciiBytes​(java.lang.String input)
      Get 7-bit ASCII character array from input String.
      static java.lang.String hexDump​(byte[] data)
      Convert a byte array to a human-readable String for debugging purposes.
      static java.lang.String normalizeSQLIdentifier​(java.lang.String id)
      Normalize a SQL identifer, up-casing if , and handling of (SQL 2003, section 5.2).
      (package private) static java.lang.String quoteString​(java.lang.String source, char quote)
      Quote a string so that it can be used as an identifier or a string literal in SQL statements.
      static java.lang.String quoteStringLiteral​(java.lang.String string)
      Quote a string so that it can be used as a string literal in an SQL statement.
      static java.lang.String shortDBName​(java.lang.String canonicalDBName, char separatorChar)
      Get the short database name from the canonical name.
      static java.lang.String slice​(java.lang.String value, int beginOffset, int endOffset, boolean trim)
      Return a slice (substring) of the passed in value, optionally trimmed.
      static boolean SQLEqualsIgnoreCase​(java.lang.String s1, java.lang.String s2)
      Compares two strings Strings will be uppercased in english and compared equivalent to s1.equalsIgnoreCase(s2) throws NPE if s1 is null
      static java.lang.String SQLToUpperCase​(java.lang.String s)
      Convert string to uppercase Always use the java.util.ENGLISH locale
      static java.lang.String toHexString​(byte[] data, int offset, int length)
      Convert a byte array to a String with a hexidecimal format.
      static java.lang.String[] toStringArray​(java.lang.Object[] objArray)
      A method that receive an array of Objects and return a String array representation of that array.
      static java.lang.String trimTrailing​(java.lang.String str)
      Trim off trailing blanks but not leading blanks
      static java.lang.String truncate​(java.lang.String value, int length)
      Truncate a String to the given length with no warnings or error raised if it is bigger.
      • Methods inherited from class java.lang.Object

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

      • hex_table

        private static char[] hex_table
    • Constructor Detail

      • StringUtil

        public StringUtil()
    • Method Detail

      • formatForPrint

        public static final java.lang.String formatForPrint​(java.lang.String input)
        Used to print out a string for error messages, chops is off at 60 chars for historical reasons.
      • toStringArray

        public static java.lang.String[] toStringArray​(java.lang.Object[] objArray)
        A method that receive an array of Objects and return a String array representation of that array.
      • getAsciiBytes

        public static byte[] getAsciiBytes​(java.lang.String input)
        Get 7-bit ASCII character array from input String. The lower 7 bits of each character in the input string is assumed to be the ASCII character value. Hexadecimal - Character | 00 NUL| 01 SOH| 02 STX| 03 ETX| 04 EOT| 05 ENQ| 06 ACK| 07 BEL| | 08 BS | 09 HT | 0A NL | 0B VT | 0C NP | 0D CR | 0E SO | 0F SI | | 10 DLE| 11 DC1| 12 DC2| 13 DC3| 14 DC4| 15 NAK| 16 SYN| 17 ETB| | 18 CAN| 19 EM | 1A SUB| 1B ESC| 1C FS | 1D GS | 1E RS | 1F US | | 20 SP | 21 ! | 22 " | 23 # | 24 $ | 25 % | 26 & | 27 ' | | 28 ( | 29 ) | 2A * | 2B + | 2C , | 2D - | 2E . | 2F / | | 30 0 | 31 1 | 32 2 | 33 3 | 34 4 | 35 5 | 36 6 | 37 7 | | 38 8 | 39 9 | 3A : | 3B ; | 3C < | 3D = | 3E > | 3F ? | | 40 @ | 41 A | 42 B | 43 C | 44 D | 45 E | 46 F | 47 G | | 48 H | 49 I | 4A J | 4B K | 4C L | 4D M | 4E N | 4F O | | 50 P | 51 Q | 52 R | 53 S | 54 T | 55 U | 56 V | 57 W | | 58 X | 59 Y | 5A Z | 5B [ | 5C \ | 5D ] | 5E ^ | 5F _ | | 60 ` | 61 a | 62 b | 63 c | 64 d | 65 e | 66 f | 67 g | | 68 h | 69 i | 6A j | 6B k | 6C l | 6D m | 6E n | 6F o | | 70 p | 71 q | 72 r | 73 s | 74 t | 75 u | 76 v | 77 w | | 78 x | 79 y | 7A z | 7B { | 7C | | 7D } | 7E ~ | 7F DEL|
      • trimTrailing

        public static java.lang.String trimTrailing​(java.lang.String str)
        Trim off trailing blanks but not leading blanks
        Parameters:
        str -
        Returns:
        The input with trailing blanks stipped off
      • truncate

        public static java.lang.String truncate​(java.lang.String value,
                                                int length)
        Truncate a String to the given length with no warnings or error raised if it is bigger.
        Parameters:
        value - String to be truncated
        length - Maximum length of string
        Returns:
        Returns value if value is null or value.length() is less or equal to than length, otherwise a String representing value truncated to length.
      • slice

        public static java.lang.String slice​(java.lang.String value,
                                             int beginOffset,
                                             int endOffset,
                                             boolean trim)
        Return a slice (substring) of the passed in value, optionally trimmed. WARNING - endOffset is inclusive for historical reasons, unlike String.substring() which has an exclusive ending offset.
        Parameters:
        value - Value to slice, must be non-null.
        beginOffset - Inclusive start character
        endOffset - Inclusive end character
        trim - To trim or not to trim
        Returns:
        Sliceed value.
      • toHexString

        public static java.lang.String toHexString​(byte[] data,
                                                   int offset,
                                                   int length)
        Convert a byte array to a String with a hexidecimal format. The String may be converted back to a byte array using fromHexString.
        For each byte (b) two characaters are generated, the first character represents the high nibble (4 bits) in hexidecimal (b & 0xf0), the second character represents the low nibble (b &xs; 0x0f).
        The byte at data[offset] is represented by the first two characters in the returned String.
        Parameters:
        data - byte array
        offset - starting byte (zero based) to convert.
        length - number of bytes to convert.
        Returns:
        the String (with hexidecimal format) form of the byte array
      • fromHexString

        public static byte[] fromHexString​(java.lang.String s,
                                           int offset,
                                           int length)
        Convert a hexidecimal string generated by toHexString() back into a byte array.
        Parameters:
        s - String to convert
        offset - starting character (zero based) to convert.
        length - number of characters to convert.
        Returns:
        the converted byte array. Returns null if the length is not a multiple of 2.
      • hexDump

        public static java.lang.String hexDump​(byte[] data)
        Convert a byte array to a human-readable String for debugging purposes.
      • SQLToUpperCase

        public static java.lang.String SQLToUpperCase​(java.lang.String s)
        Convert string to uppercase Always use the java.util.ENGLISH locale
        Parameters:
        s - string to uppercase
        Returns:
        uppercased string
      • SQLEqualsIgnoreCase

        public static boolean SQLEqualsIgnoreCase​(java.lang.String s1,
                                                  java.lang.String s2)
        Compares two strings Strings will be uppercased in english and compared equivalent to s1.equalsIgnoreCase(s2) throws NPE if s1 is null
        Parameters:
        s1 - first string to compare
        s2 - second string to compare
        Returns:
        true if the two upppercased ENGLISH values are equal return false if s2 is null
      • normalizeSQLIdentifier

        public static java.lang.String normalizeSQLIdentifier​(java.lang.String id)
        Normalize a SQL identifer, up-casing if , and handling of (SQL 2003, section 5.2). The normal form is used internally in Derby.
        Parameters:
        id - syntacically correct SQL identifier
      • compressQuotes

        public static java.lang.String compressQuotes​(java.lang.String source,
                                                      java.lang.String quotes)
        Compress 2 adjacent (single or double) quotes into a single (s or d) quote when found in the middle of a String. NOTE: """" or '''' will be compressed into "" or ''. This function assumes that the leading and trailing quote from a string or delimited identifier have already been removed.
        Parameters:
        source - string to be compressed
        quotes - string containing two single or double quotes.
        Returns:
        String where quotes have been compressed
      • quoteString

        static java.lang.String quoteString​(java.lang.String source,
                                            char quote)
        Quote a string so that it can be used as an identifier or a string literal in SQL statements. Identifiers are surrounded by double quotes and string literals are surrounded by single quotes. If the string contains quote characters, they are escaped.
        Parameters:
        source - the string to quote
        quote - the character to quote the string with (' or ")
        Returns:
        a string quoted with the specified quote character
        See Also:
        quoteStringLiteral(String), IdUtil.normalToDelimited(String)
      • quoteStringLiteral

        public static java.lang.String quoteStringLiteral​(java.lang.String string)
        Quote a string so that it can be used as a string literal in an SQL statement.
        Parameters:
        string - the string to quote
        Returns:
        the string surrounded by single quotes and with proper escaping of any single quotes inside the string
      • ensureIndent

        public static java.lang.String ensureIndent​(java.lang.String formatted,
                                                    int depth)
        Utility for formatting which bends a multi-line string into shape for outputting it in a context where there is depth tabs. Trailing newlines are discarded as well.

        Replace "^[\t]*" with "depth" number of tabs.
        Replace "\n+$" with "". Replace all "\n[\t]*" with "\n" + "depth" number of tabs.

        Parameters:
        formatted - string to sanitize
        depth - indentation level the string is to be printed at (0,1,2..)
      • doRegExpA

        private static java.lang.String doRegExpA​(java.lang.String src,
                                                  java.lang.String indent)
        Reg.exp substitute:

        Pattern pat_a = Pattern.compile("\\A\\t*");
        Matcher m_a = pat_a.matcher(src);
        src = m_a.replaceFirst(indent.toString());

        Parameters:
        src - source string in which to substitute indent
        indent - indentation to lead source
        Returns:
        new version of src after substitution
      • doRegExpB

        private static java.lang.String doRegExpB​(java.lang.String src)
        Reg.exp substitute:

        Pattern pat_b = Pattern.compile("\\n+\\Z");
        Matcher m_b = pat_b.matcher(formatted);
        formatted = m_b.replaceFirst("");

        Parameters:
        src - source string in which to substitute
        Returns:
        new version of src after substitution
      • doRegExpC

        private static java.lang.String doRegExpC​(java.lang.String src,
                                                  java.lang.String indent)
        Reg.exp substitute:

        Pattern pat_c = Pattern.compile("\\n\\t*");
        Matcher m_c = pat_c.matcher(formatted);
        formatted = m_c.replaceAll("\n" + indent.toString());

        Parameters:
        src - source string in which to substitute indent
        indent - indentation to lead source
        Returns:
        new version of src after substitution
      • shortDBName

        public static java.lang.String shortDBName​(java.lang.String canonicalDBName,
                                                   char separatorChar)
        Get the short database name from the canonical name.