org.h2.util
Class StringUtils

java.lang.Object
  extended by org.h2.util.StringUtils

public class StringUtils
extends java.lang.Object

A few String utility functions.


Method Summary
static java.lang.String addAsterisk(java.lang.String s, int index)
          Add an asterisk ('[*]') at the given position.
static java.lang.String arrayCombine(java.lang.String[] list, char separatorChar)
          Combine an array of strings to one array using the given separator character.
static java.lang.String[] arraySplit(java.lang.String s, char separatorChar, boolean trim)
          Split a string into an array of strings using the given separator.
static java.lang.String cache(java.lang.String s)
          Get the string from the cache if possible.
static void clearCache()
          Clear the cache.
static char[] cloneCharArray(char[] chars)
          Create a new char array and copy all the data.
static java.lang.String convertBytesToString(byte[] value)
          Convert a byte array to a hex encoded string.
static java.lang.String convertBytesToString(byte[] value, int len)
          Convert a byte array to a hex encoded string.
static byte[] convertStringToBytes(java.lang.String s)
          Convert a hex encoded string to a byte array.
static java.lang.String enclose(java.lang.String s)
          Enclose a string with '(' and ')' if this is not yet done.
static boolean equals(java.lang.String a, java.lang.String b)
          Check if two strings are equal.
static java.lang.String fromCacheOrNew(java.lang.String s)
          Get a string from the cache, and if no such string has been found, create a new one with only this content.
static boolean isNullOrEmpty(java.lang.String s)
          Check if a String is null or empty (the length is null).
static java.lang.String javaDecode(java.lang.String s)
          Decode a text that is encoded as a Java string literal.
static java.lang.String javaEncode(java.lang.String s)
          Convert a string to a Java literal using the correct escape sequences.
static java.lang.String pad(java.lang.String string, int n, java.lang.String padding, boolean right)
          Pad a string.
static java.lang.String quoteIdentifier(java.lang.String s)
          Enclose a string with double quotes.
static java.lang.String quoteJavaIntArray(int[] array)
          Convert an int array to the Java source code that represents this array.
static java.lang.String quoteJavaString(java.lang.String s)
          Convert a string to the Java literal and enclose it with double quotes.
static java.lang.String quoteJavaStringArray(java.lang.String[] array)
          Convert a string array to the Java source code that represents this array.
static java.lang.String quoteRemarkSQL(java.lang.String sql)
          In a string, replace block comment marks with /++ ..
static java.lang.String quoteStringSQL(java.lang.String s)
          Convert a string to a SQL literal.
static java.lang.String replaceAll(java.lang.String s, java.lang.String before, java.lang.String after)
          Replace all occurrences of the before string with the after string.
static java.lang.String replaceAllIgnoreCase(java.lang.String s, java.lang.String before, java.lang.String after)
          Replace all occurrences of the "before" string with the "after" string.
static boolean startsWithIgnoreCase(java.lang.String s, java.lang.String start)
          Check is a string starts with another string, ignoring the case.
static java.lang.String toLowerEnglish(java.lang.String s)
          Convert a string to lowercase using the English locale.
static java.lang.String toUpperEnglish(java.lang.String s)
          Convert a string to uppercase using the English locale.
static java.lang.String trim(java.lang.String s, boolean leading, boolean trailing, java.lang.String sp)
          Trim a character from a string.
static java.lang.String unEnclose(java.lang.String s)
          Remove enclosing '(' and ')' if this text is enclosed.
static java.lang.String urlDecode(java.lang.String encoded)
          Decode the URL to a string.
static java.lang.String urlEncode(java.lang.String s)
          Encode the string as an URL.
static java.lang.String utf8Decode(byte[] utf8)
          Convert a UTF-8 representation of a text to the text.
static byte[] utf8Encode(java.lang.String s)
          Convert the text to UTF-8 format.
static java.lang.String xmlAttr(java.lang.String name, java.lang.String value)
          Creates an XML attribute of the form name="value".
static java.lang.String xmlCData(java.lang.String data)
          Converts the data to a CDATA element.
static java.lang.String xmlComment(java.lang.String data)
          Escapes a comment.
static java.lang.String xmlNode(java.lang.String name, java.lang.String attributes, java.lang.String content)
          Create an XML node with optional attributes and content.
static java.lang.String xmlStartDoc()
          Returns
static java.lang.String xmlText(java.lang.String text)
          Escapes an XML text element.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

equals

public static boolean equals(java.lang.String a,
                             java.lang.String b)
Check if two strings are equal. Here, null is equal to null.

Parameters:
a - the first value
b - the second value
Returns:
true if both are null or both are equal

toUpperEnglish

public static java.lang.String toUpperEnglish(java.lang.String s)
Convert a string to uppercase using the English locale.

Parameters:
s - the test to convert
Returns:
the uppercase text

toLowerEnglish

public static java.lang.String toLowerEnglish(java.lang.String s)
Convert a string to lowercase using the English locale.

Parameters:
s - the text to convert
Returns:
the lowercase text

startsWithIgnoreCase

public static boolean startsWithIgnoreCase(java.lang.String s,
                                           java.lang.String start)
Check is a string starts with another string, ignoring the case.

Parameters:
s - the string to check (must be longer than start)
start - the prefix of s
Returns:
true if start is a prefix of s

quoteStringSQL

public static java.lang.String quoteStringSQL(java.lang.String s)
Convert a string to a SQL literal. Null is converted to NULL. The text is enclosed in single quotes. If there are any special characters, the method STRINGDECODE is used.

Parameters:
s - the text to convert.
Returns:
the SQL literal

javaEncode

public static java.lang.String javaEncode(java.lang.String s)
Convert a string to a Java literal using the correct escape sequences. The literal is not enclosed in double quotes. The result can be used in properties files or in Java source code.

Parameters:
s - the text to convert
Returns:
the Java representation

addAsterisk

public static java.lang.String addAsterisk(java.lang.String s,
                                           int index)
Add an asterisk ('[*]') at the given position. This format is used to show where parsing failed in a statement.

Parameters:
s - the text
index - the position
Returns:
the text with asterisk

javaDecode

public static java.lang.String javaDecode(java.lang.String s)
Decode a text that is encoded as a Java string literal. The Java properties file format and Java source code format is supported.

Parameters:
s - the encoded string
Returns:
the string

quoteJavaString

public static java.lang.String quoteJavaString(java.lang.String s)
Convert a string to the Java literal and enclose it with double quotes. Null will result in "null" (without double quotes).

Parameters:
s - the text to convert
Returns:
the Java representation

utf8Encode

public static byte[] utf8Encode(java.lang.String s)
Convert the text to UTF-8 format. For the Unicode characters 0xd800-0xdfff only one byte is returned.

Parameters:
s - the text
Returns:
the UTF-8 representation

utf8Decode

public static java.lang.String utf8Decode(byte[] utf8)
Convert a UTF-8 representation of a text to the text.

Parameters:
utf8 - the UTF-8 representation
Returns:
the text

quoteJavaStringArray

public static java.lang.String quoteJavaStringArray(java.lang.String[] array)
Convert a string array to the Java source code that represents this array. Null will be converted to 'null'.

Parameters:
array - the string array
Returns:
the Java source code (including new String[]{})

quoteJavaIntArray

public static java.lang.String quoteJavaIntArray(int[] array)
Convert an int array to the Java source code that represents this array. Null will be converted to 'null'.

Parameters:
array - the int array
Returns:
the Java source code (including new int[]{})

enclose

public static java.lang.String enclose(java.lang.String s)
Enclose a string with '(' and ')' if this is not yet done.

Parameters:
s - the string
Returns:
the enclosed string

unEnclose

public static java.lang.String unEnclose(java.lang.String s)
Remove enclosing '(' and ')' if this text is enclosed.

Parameters:
s - the potentially enclosed string
Returns:
the string

urlEncode

public static java.lang.String urlEncode(java.lang.String s)
Encode the string as an URL.

Parameters:
s - the string to encode
Returns:
the encoded string

urlDecode

public static java.lang.String urlDecode(java.lang.String encoded)
Decode the URL to a string.

Parameters:
encoded - the encoded URL
Returns:
the decoded string

arraySplit

public static java.lang.String[] arraySplit(java.lang.String s,
                                            char separatorChar,
                                            boolean trim)
Split a string into an array of strings using the given separator. A null string will result in a null array, and an empty string in a zero element array.

Parameters:
s - the string to split
separatorChar - the separator character
trim - whether each element should be trimmed
Returns:
the array list

arrayCombine

public static java.lang.String arrayCombine(java.lang.String[] list,
                                            char separatorChar)
Combine an array of strings to one array using the given separator character. A backslash and the separator character and escaped using a backslash.

Parameters:
list - the string array
separatorChar - the separator character
Returns:
the combined string

xmlAttr

public static java.lang.String xmlAttr(java.lang.String name,
                                       java.lang.String value)
Creates an XML attribute of the form name="value". A single space is prepended to the name, so that multiple attributes can be concatenated.

Parameters:
name - the attribute name
value - the attribute value
Returns:
the attribute

xmlNode

public static java.lang.String xmlNode(java.lang.String name,
                                       java.lang.String attributes,
                                       java.lang.String content)
Create an XML node with optional attributes and content. The data is indented with 4 spaces if it contains a newline character.

Parameters:
name - the element name
attributes - the attributes (may be null)
content - the content (may be null)
Returns:
the node

xmlComment

public static java.lang.String xmlComment(java.lang.String data)
Escapes a comment. If the data contains '--', it is converted to '- -'. The data is indented with 4 spaces if it contains a newline character.

Parameters:
data - the comment text
Returns:

xmlCData

public static java.lang.String xmlCData(java.lang.String data)
Converts the data to a CDATA element. If the data contains ']]>', it is escaped as a text element.

Parameters:
data - the text data
Returns:

xmlStartDoc

public static java.lang.String xmlStartDoc()
Returns

Returns:

xmlText

public static java.lang.String xmlText(java.lang.String text)
Escapes an XML text element.

Parameters:
text - the text data
Returns:
the escaped text

replaceAll

public static java.lang.String replaceAll(java.lang.String s,
                                          java.lang.String before,
                                          java.lang.String after)
Replace all occurrences of the before string with the after string.

Parameters:
s - the string
before - the old text
after - the new text
Returns:
the string with the before string replaced

replaceAllIgnoreCase

public static java.lang.String replaceAllIgnoreCase(java.lang.String s,
                                                    java.lang.String before,
                                                    java.lang.String after)
Replace all occurrences of the "before" string with the "after" string. A case-insensitive comparison is made.

Parameters:
s - the string
before - the old text
after - the new text
Returns:
the string with the before string replaced

quoteIdentifier

public static java.lang.String quoteIdentifier(java.lang.String s)
Enclose a string with double quotes. A double quote inside the string is escaped using a double quote.

Parameters:
s - the text
Returns:
the double quoted text

isNullOrEmpty

public static boolean isNullOrEmpty(java.lang.String s)
Check if a String is null or empty (the length is null).

Parameters:
s - the string to check
Returns:
true if it is null or empty

quoteRemarkSQL

public static java.lang.String quoteRemarkSQL(java.lang.String sql)
In a string, replace block comment marks with /++ .. ++/.

Parameters:
sql - the string
Returns:
the resulting string

pad

public static java.lang.String pad(java.lang.String string,
                                   int n,
                                   java.lang.String padding,
                                   boolean right)
Pad a string. This method is used for the SQL function RPAD and LPAD.

Parameters:
string - the original string
n - the target length
padding - the padding string
right - true if the padding should be appended at the end
Returns:
the padded string

cloneCharArray

public static char[] cloneCharArray(char[] chars)
Create a new char array and copy all the data. If the size of the byte array is zero, the same array is returned.

Parameters:
chars - the char array (may be null)
Returns:
a new char array

trim

public static java.lang.String trim(java.lang.String s,
                                    boolean leading,
                                    boolean trailing,
                                    java.lang.String sp)
Trim a character from a string.

Parameters:
s - the string
leading - if leading characters should be removed
trailing - if trailing characters should be removed
sp - what to remove (only the first character is used) or null for a space
Returns:
the trimmed string

cache

public static java.lang.String cache(java.lang.String s)
Get the string from the cache if possible. If the string has not been found, it is added to the cache. If there is such a string in the cache, that one is returned.

Parameters:
s - the original string
Returns:
a string with the same content, if possible from the cache

fromCacheOrNew

public static java.lang.String fromCacheOrNew(java.lang.String s)
Get a string from the cache, and if no such string has been found, create a new one with only this content. This solves out of memory problems if the string is a substring of another, large string. In Java, strings are shared, which could lead to memory problems. This avoid such problems.

Parameters:
s - the string
Returns:
a string that is guaranteed not be a substring of a large string

clearCache

public static void clearCache()
Clear the cache. This method is used for testing.


convertStringToBytes

public static byte[] convertStringToBytes(java.lang.String s)
Convert a hex encoded string to a byte array.

Parameters:
s - the hex encoded string
Returns:
the byte array

convertBytesToString

public static java.lang.String convertBytesToString(byte[] value)
Convert a byte array to a hex encoded string.

Parameters:
value - the byte array
Returns:
the hex encoded string

convertBytesToString

public static java.lang.String convertBytesToString(byte[] value,
                                                    int len)
Convert a byte array to a hex encoded string.

Parameters:
value - the byte array
len - the number of bytes to encode
Returns:
the hex encoded string