rcm.util
Class Str

java.lang.Object
  |
  +--rcm.util.Str

public abstract class Str
extends java.lang.Object

String utility routines.


Constructor Summary
Str()
           
 
Method Summary
static java.lang.String abbreviate(java.lang.String s, int max)
          Abbreviate a string.
static java.lang.String abbreviateLines(java.lang.String s, int maxLines, java.lang.String message)
          Abbreviate a multi-line string.
static java.lang.String after(java.lang.String s, java.lang.String pat)
          Split string around a substring match and return suffix.
static java.lang.String before(java.lang.String s, java.lang.String pat)
          Split string around a substring match and return prefix.
static java.lang.String compressWhitespace(java.lang.String s)
          Compress whitespace.
static boolean endsWithIgnoreCase(java.lang.String s, java.lang.String suffix)
          Like String.endsWith, but case-insensitive.
static java.lang.String escape(java.lang.String subject, char escapeChar, java.lang.String metachars)
          Escapes metacharacters in a string.
static java.lang.String escape(java.lang.String subject, java.lang.String chars, char escapeChar, java.lang.String metachars)
          Escapes characters in a string.
static int indexOfAnyChar(java.lang.String subject, java.lang.String chars)
          Find first occurence of any of a set of characters.
static int indexOfAnyChar(java.lang.String subject, java.lang.String chars, int start)
          Find first occurence of any of a set of characters, starting at a specified index.
static boolean isWhitespace(java.lang.String s)
          Test if string contains only whitespace.
static java.lang.String join(java.lang.String[] list, java.lang.String sep)
          Concatenate an array of strings.
static java.lang.String longestCommonPrefix(java.lang.String s, java.lang.String t)
          Find longest common prefix of two strings.
static java.lang.String longestCommonPrefixIgnoreCase(java.lang.String s, java.lang.String t)
          Find longest common prefix of two strings, ignoring case.
static int longestCommonPrefixLength(java.lang.String s, java.lang.String t)
           
static int longestCommonPrefixLengthIgnoreCase(java.lang.String s, java.lang.String t)
           
static java.lang.String longestCommonSuffix(java.lang.String s, java.lang.String t)
          Find longest common suffix of two strings.
static java.lang.String longestCommonSuffixIgnoreCase(java.lang.String s, java.lang.String t)
          Find longest common suffix of two strings, ignoring case.
static int longestCommonSuffixLength(java.lang.String s, java.lang.String t)
           
static int longestCommonSuffixLengthIgnoreCase(java.lang.String s, java.lang.String t)
           
static java.lang.Number parseNumber(java.lang.String s)
           
static java.lang.String repeat(java.lang.String s, int n)
          Generate a string by concatenating n copies of another string.
static java.lang.String replace(java.lang.String subject, java.lang.String original, java.lang.String replacement)
          Replace all occurences of a string.
static java.lang.String reverse(java.lang.String s)
          Reverse a string.
static boolean startsWithIgnoreCase(java.lang.String s, java.lang.String prefix)
          Like String.startsWith, but case-insensitive.
static java.lang.String unescape(java.lang.String subject, char escapeChar, java.lang.String metachars, java.lang.String chars, boolean keepUntranslatedEscapes)
          Translate escape sequences (e.g.
static java.lang.String untabify(java.lang.String s, int tabsize)
          Expands tabs to spaces.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Str

public Str()
Method Detail

indexOfAnyChar

public static int indexOfAnyChar(java.lang.String subject,
                                 java.lang.String chars)
Find first occurence of any of a set of characters.

Parameters:
subject - String in which to search
chars - Characters to search for
Returns:
index of first occurence in subject of a character from chars, or -1 if no match.

indexOfAnyChar

public static int indexOfAnyChar(java.lang.String subject,
                                 java.lang.String chars,
                                 int start)
Find first occurence of any of a set of characters, starting at a specified index.

Parameters:
subject - String in which to search
chars - Characters to search for
start - Starting offset to search from
Returns:
index of first occurence (after start) in subject of a character from chars, or -1 if no match.

replace

public static java.lang.String replace(java.lang.String subject,
                                       java.lang.String original,
                                       java.lang.String replacement)
Replace all occurences of a string.

Parameters:
subject - String in which to search
original - String to search for in subject
replacement - String to substitute
Returns:
subject with all occurences of original replaced by replacement

escape

public static java.lang.String escape(java.lang.String subject,
                                      char escapeChar,
                                      java.lang.String metachars)
Escapes metacharacters in a string.

Parameters:
subject - String in which metacharacters are to be escaped
escapeChar - the escape character (e.g., \)
metachars - the metacharacters that should be escaped
Returns:
subject with escapeChar inserted before every character found in metachars

escape

public static java.lang.String escape(java.lang.String subject,
                                      java.lang.String chars,
                                      char escapeChar,
                                      java.lang.String metachars)
Escapes characters in a string.

Parameters:
subject - String in which metacharacters are to be escaped
chars - Characters that need to be escaped (e.g. "\b\t\r\n\\")
escapeChar - the escape character (e.g., '\\')
metachars - escape code letters corresponding to each letter in chars (e.g. "btrn\\") Must have metachars.length () == chars.length().
Returns:
subject where every occurence of c in chars is replaced by escapeChar followed the character corresponding to c in metachars.

unescape

public static java.lang.String unescape(java.lang.String subject,
                                        char escapeChar,
                                        java.lang.String metachars,
                                        java.lang.String chars,
                                        boolean keepUntranslatedEscapes)
Translate escape sequences (e.g. \r, \n) to characters.

Parameters:
subject - String in which metacharacters are to be escaped
escapeChar - the escape character (e.g., \)
metachars - letters representing escape codes (typically "btrn\\")
chars - characters corresponding to metachars (typically "\b\t\r\n\\"). Must have chars.length () == metachars.length().
keepUntranslatedEscapes - Controls behavior on unknown escape sequences (see below).
Returns:
subject where every escapeChar followed by c in metachars is replaced by the character corresponding to c in chars. If an escape sequence is untranslatable (because escapeChar is followed by some character c not in metachars), then the escapeChar is kept if keepUntranslatedEscapes is true, otherwise the escapeChar is deleted. (The character c is always kept.)

parseNumber

public static java.lang.Number parseNumber(java.lang.String s)
                                    throws java.lang.NumberFormatException

repeat

public static java.lang.String repeat(java.lang.String s,
                                      int n)
Generate a string by concatenating n copies of another string.

Parameters:
s - String to repeat
n - number of times to repeat s
Returns:
s concatenated with itself n times

compressWhitespace

public static java.lang.String compressWhitespace(java.lang.String s)
Compress whitespace.

Parameters:
s - String to compress
Returns:
string with leading and trailing whitespace removed, and internal runs of whitespace replaced by a single space character

isWhitespace

public static boolean isWhitespace(java.lang.String s)
Test if string contains only whitespace.

Parameters:
s - String to test
Returns:
true iff all characters in s satisfy Character.isWhitespace(). If s is empty, returns true.

join

public static java.lang.String join(java.lang.String[] list,
                                    java.lang.String sep)
Concatenate an array of strings.

Parameters:
list - Array of strings to concatenate
sep - Separator to insert between each string
Returns:
string consisting of list[0] + sep + list[1] + sep + ... + sep + list[list.length-1]

abbreviate

public static java.lang.String abbreviate(java.lang.String s,
                                          int max)
Abbreviate a string.

Parameters:
s - String to abbreviate
max - Maximum length of returned string; must be at least 5

abbreviateLines

public static java.lang.String abbreviateLines(java.lang.String s,
                                               int maxLines,
                                               java.lang.String message)
Abbreviate a multi-line string.

Parameters:
s - String to abbreviate
maxLines - Max number of lines in returned string; must be at least 3
message - Message to replace removed lines with; should end with \n, but may be multiple lines. Occurrences of %d are replaced with the number of lines removed.

before

public static java.lang.String before(java.lang.String s,
                                      java.lang.String pat)
Split string around a substring match and return prefix.

Parameters:
s - String to split
pat - Substring to search for in s
Returns:
Prefix of s ending just before the first occurrence of pat. If pat is not found in s, returns s itself.

after

public static java.lang.String after(java.lang.String s,
                                     java.lang.String pat)
Split string around a substring match and return suffix.

Parameters:
s - String to split
pat - Substring to search for in s
Returns:
Suffix of s starting just after the first occurrence of pat. If pat is not found in s, returns "".

startsWithIgnoreCase

public static boolean startsWithIgnoreCase(java.lang.String s,
                                           java.lang.String prefix)
Like String.startsWith, but case-insensitive.


endsWithIgnoreCase

public static boolean endsWithIgnoreCase(java.lang.String s,
                                         java.lang.String suffix)
Like String.endsWith, but case-insensitive.


untabify

public static java.lang.String untabify(java.lang.String s,
                                        int tabsize)
Expands tabs to spaces.


reverse

public static java.lang.String reverse(java.lang.String s)
Reverse a string.

Parameters:
s - String to reverse
Returns:
string containing characters of s in reverse order

longestCommonPrefix

public static java.lang.String longestCommonPrefix(java.lang.String s,
                                                   java.lang.String t)
Find longest common prefix of two strings.


longestCommonPrefixLength

public static int longestCommonPrefixLength(java.lang.String s,
                                            java.lang.String t)

longestCommonSuffix

public static java.lang.String longestCommonSuffix(java.lang.String s,
                                                   java.lang.String t)
Find longest common suffix of two strings.


longestCommonSuffixLength

public static int longestCommonSuffixLength(java.lang.String s,
                                            java.lang.String t)

longestCommonPrefixIgnoreCase

public static java.lang.String longestCommonPrefixIgnoreCase(java.lang.String s,
                                                             java.lang.String t)
Find longest common prefix of two strings, ignoring case.


longestCommonPrefixLengthIgnoreCase

public static int longestCommonPrefixLengthIgnoreCase(java.lang.String s,
                                                      java.lang.String t)

longestCommonSuffixIgnoreCase

public static java.lang.String longestCommonSuffixIgnoreCase(java.lang.String s,
                                                             java.lang.String t)
Find longest common suffix of two strings, ignoring case.


longestCommonSuffixLengthIgnoreCase

public static int longestCommonSuffixLengthIgnoreCase(java.lang.String s,
                                                      java.lang.String t)