org.zkoss.lang
Class Strings

java.lang.Object
  extended by org.zkoss.lang.Strings

public class Strings
extends java.lang.Object

String utilties and constants

Author:
tomyeh

Nested Class Summary
static class Strings.Result
          The result of substring(java.lang.String, int, char).
 
Constructor Summary
Strings()
           
 
Method Summary
static int anyOf(java.lang.String src, java.lang.String delimiters, int from)
          Returns the index that is one of delimiters, or the length if none of delimiter is found.
static java.lang.StringBuffer appendEscape(java.lang.StringBuffer sb, java.lang.String s, java.lang.String specials)
          Escapes (aka. quote) the special characters with backslash and appends it the specified string buffer.
static java.lang.String encode(int val)
          Returns an encoded string, faster and shorter than Long.toHexString.
static java.lang.String encode(long val)
          Returns an encoded string, faster and shorter than Long.toHexString.
static java.lang.StringBuffer encode(java.lang.StringBuffer sb, int val)
          Returns an encoded string buffer, faster and shorter than Integer.toHexString.
static java.lang.StringBuffer encode(java.lang.StringBuffer sb, long val)
          Returns an encoded string buffer, faster and shorter than Long.toHexString.
static java.lang.String escape(java.lang.String s, java.lang.String specials)
          Escapes (aka, quote) the special characters with backslash.
static boolean isBlank(java.lang.String s)
          Returns true if the string is null or empty or pure blank.
static boolean isEmpty(java.lang.String s)
          Returns true if the string is null or empty.
static int lastAnyOf(java.lang.String src, java.lang.String delimiters, int from)
          The backward version of anyOf(java.lang.String, java.lang.String, int).
static int nextSeparator(java.lang.String src, int from, char[] separators, boolean escBackslash, boolean escQuot, boolean quotAsSeparator)
          Returns the next seperator index in the src string.
static Strings.Result nextToken(java.lang.String src, int from, char[] separators)
          Returns the next token with unescape.
static Strings.Result nextToken(java.lang.String src, int from, char[] separators, boolean escBackslash, boolean quotAsToken)
          Returns the next token with unescape option.
static int nextWhitespace(java.lang.CharSequence src, int from)
          Returns the next whitespace.
static int skipWhitespaces(java.lang.CharSequence src, int from)
          Returns the next index after skipping whitespaces.
static int skipWhitespacesBackward(java.lang.CharSequence src, int from)
          The backward version of skipWhitespaces(java.lang.CharSequence, int).
static Strings.Result substring(java.lang.String src, int from, char until)
          Returns the substring from the from index up to the until character or end-of-string.
static Strings.Result substring(java.lang.String src, int from, char until, boolean escBackslash)
          Returns the substring from the from index up to the until character or end-of-string.
static java.lang.String unescape(java.lang.String s)
          Un-escape the quoted string.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Strings

public Strings()
Method Detail

isEmpty

public static final boolean isEmpty(java.lang.String s)
Returns true if the string is null or empty.


isBlank

public static final boolean isBlank(java.lang.String s)
Returns true if the string is null or empty or pure blank.


encode

public static final java.lang.StringBuffer encode(java.lang.StringBuffer sb,
                                                  int val)
Returns an encoded string buffer, faster and shorter than Integer.toHexString. It uses numbers and lower-case leters only. Thus it is a valid variable name if prefix with an alphabet. At least one character is generated.

It works even in system that is case-insensitive, such as IE.

It is useful to generate a string to represent a number.


encode

public static final java.lang.StringBuffer encode(java.lang.StringBuffer sb,
                                                  long val)
Returns an encoded string buffer, faster and shorter than Long.toHexString. It uses numbers and lower-case letters only. Thus it is a valid variable name if prefix with an alphabet. At least one character is generated.

It works even in system that is case-insensitive, such as IE.

It is useful to generate a string to represent a number.


encode

public static final java.lang.String encode(int val)
Returns an encoded string, faster and shorter than Long.toHexString.


encode

public static final java.lang.String encode(long val)
Returns an encoded string, faster and shorter than Long.toHexString.


anyOf

public static final int anyOf(java.lang.String src,
                              java.lang.String delimiters,
                              int from)
Returns the index that is one of delimiters, or the length if none of delimiter is found.

Unlike String.indexOf(String, int), this method returns the first occurrence of any character in the delimiters.

This method is optimized to use String.indexOf(char, int) if it found the length of dilimiter is 1.

Parameters:
src - the source string to search
from - the index to start the search from
delimiters - the set of characters to search for
Returns:
the index that is one of delimiters. If return >= src.length(), it means no such delimiters
See Also:
lastAnyOf(java.lang.String, java.lang.String, int)

lastAnyOf

public static final int lastAnyOf(java.lang.String src,
                                  java.lang.String delimiters,
                                  int from)
The backward version of anyOf(java.lang.String, java.lang.String, int).

This method is optimized to use String.indexOf(char, int) if it found the length of dilimiter is 1.

Returns:
the previous index that is one of delimiter. If it is negative, it means no delimiter in front of from
See Also:
anyOf(java.lang.String, java.lang.String, int)

skipWhitespaces

public static final int skipWhitespaces(java.lang.CharSequence src,
                                        int from)
Returns the next index after skipping whitespaces.


skipWhitespacesBackward

public static final int skipWhitespacesBackward(java.lang.CharSequence src,
                                                int from)
The backward version of skipWhitespaces(java.lang.CharSequence, int).

Returns:
the next index that is not a whitespace. If it is negative, it means no whitespace in front of it.

nextWhitespace

public static final int nextWhitespace(java.lang.CharSequence src,
                                       int from)
Returns the next whitespace.


escape

public static final java.lang.String escape(java.lang.String s,
                                            java.lang.String specials)
Escapes (aka, quote) the special characters with backslash. It prefix a backslash to any characters specfied in the specials argument.

Note: specials usually contains '\\'.

For example, Maps.parse(java.util.Map, java.lang.String, char, char) will un-quote backspace. Thus, if you want to preserve backslash, you have invoke escape(s, "\\") before calling Maps.parse().

Parameters:
s - the string to process. If null, null is returned.
specials - a string of characters that shall be escaped/quoted
See Also:
unescape(java.lang.String)

appendEscape

public static final java.lang.StringBuffer appendEscape(java.lang.StringBuffer sb,
                                                        java.lang.String s,
                                                        java.lang.String specials)
Escapes (aka. quote) the special characters with backslash and appends it the specified string buffer.


unescape

public static final java.lang.String unescape(java.lang.String s)
Un-escape the quoted string.

See Also:
escape(java.lang.String, java.lang.String), appendEscape(java.lang.StringBuffer, java.lang.String, java.lang.String)

substring

public static final Strings.Result substring(java.lang.String src,
                                             int from,
                                             char until)
Returns the substring from the from index up to the until character or end-of-string. Unlike String.subsring, it converts \f, \n, \t and \r. It doesn't handle u and x yet.

Returns:
the result (never null). Result.next is the position of the until character if found, or a number larger than length() if no such character.

substring

public static final Strings.Result substring(java.lang.String src,
                                             int from,
                                             char until,
                                             boolean escBackslash)
Returns the substring from the from index up to the until character or end-of-string.

Parameters:
escBackslash - whether to treat '\\' specially (as escape char) It doesn't handle u and x yet.
Returns:
the result (never null). Result.next is the position of the until character if found, or a number larger than length() if no such character. You can tell which case it is by examining Strings.Result.separator.

nextToken

public static final Strings.Result nextToken(java.lang.String src,
                                             int from,
                                             char[] separators)
                                      throws IllegalSyntaxException
Returns the next token with unescape. If a separator is found, it is returned in Strings.Result.separator.

Throws:
IllegalSyntaxException - if the quoted string is unclosed.

nextToken

public static final Strings.Result nextToken(java.lang.String src,
                                             int from,
                                             char[] separators,
                                             boolean escBackslash,
                                             boolean quotAsToken)
                                      throws IllegalSyntaxException
Returns the next token with unescape option. If a separator is found, it is returned in Strings.Result.separator.

Parameters:
escBackslash - whether to treat '\\' specially (as escape char) It doesn't handle u and x yet.
quotAsToken - whether to treat characters inside '\'' or '"' as a token
Throws:
IllegalSyntaxException - if the quoted string is unclosed.

nextSeparator

public static int nextSeparator(java.lang.String src,
                                int from,
                                char[] separators,
                                boolean escBackslash,
                                boolean escQuot,
                                boolean quotAsSeparator)
Returns the next seperator index in the src string.

Parameters:
escQuot - whether to escape characters inside quotations ('\'' or '"'). In other words, ignore separators inside quotations
quotAsSeparator - whether to consider quotations as one of the separators
Since:
2.4.0


Copyright © 2005-2007 Potix Corporation. All Rights Reserved.