org.apache.derby.iapi.util
Class StringUtil

java.lang.Object
  extended by org.apache.derby.iapi.util.StringUtil

public class StringUtil
extends java.lang.Object

A set of public static methods for dealing with Strings


Field Summary
private static char[] hex_table
           
 
Constructor Summary
StringUtil()
           
 
Method Summary
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:

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

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("");

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());

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 slice(java.lang.String value, int beginOffset, int endOffset, boolean trim)
          Return a slice (substring) of the passed in value, optionally trimmed.
static java.lang.String[] split(java.lang.String str, char delim)
          Splits a string around matches of the given delimiter character.
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 stringify(int[] raw)
          Turn an array of ints into a printable string.
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

split

public static java.lang.String[] split(java.lang.String str,
                                       char delim)
Splits a string around matches of the given delimiter character. Where applicable, this method can be used as a substitute for String.split(String regex), which is not available on a JSR169/Java ME platform.

Parameters:
str - the string to be split
delim - the delimiter
Throws:
java.lang.NullPointerException - if str is null

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 & 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

stringify

public static java.lang.String stringify(int[] raw)
Turn an array of ints into a printable string. Returns what's returned in Java 5 by java.util.Arrays.toString(int[]).


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

Built on Thu 2011-03-10 11:54:14+0000, from revision ???

Apache Derby V10.6 Internals - Copyright © 2004,2007 The Apache Software Foundation. All Rights Reserved.