net.sourceforge.pmd.util

Class StringUtil

public class StringUtil extends Object

BSD-style license; for more info see http://pmd.sourceforge.net/license.html
Field Summary
static String[]EMPTY_STRINGS
Method Summary
static voidappendXmlEscaped(StringBuffer buf, String src)
Appends to a StringBuffer the String src where non-ASCII and XML special chars are escaped.
static voidasStringOn(StringBuffer sb, Iterator iter, String separator)
Copies the elements returned by the iterator onto the string buffer each delimited by the separator.
static StringhtmlEncode(String string)
static booleanisSame(String s1, String s2, boolean trim, boolean ignoreCase, boolean standardizeWhitespace)
Are the two String values the same.
static intlengthOfShortestIn(String[] strings)
Return the length of the shortest string in the array.
static Stringlpad(String s, int length)
Left pads a string.
static intmaxCommonLeadingWhitespaceForAll(String[] strings)
Determine the maximum number of common leading whitespace characters the strings share in the same sequence.
static StringreplaceString(String original, char oldChar, String newString)
static StringreplaceString(String original, String oldString, String newString)
static String[]substringsOf(String source, char delimiter)
Parses the input source using the delimiter specified.
static String[]substringsOf(String str, String separator)
Much more efficient than StringTokenizer.
static String[]trimStartOn(String[] strings, int trimDepth)
Trims off the leading characters off the strings up to the trimDepth specified.

Field Detail

EMPTY_STRINGS

public static final String[] EMPTY_STRINGS

Method Detail

appendXmlEscaped

public static void appendXmlEscaped(StringBuffer buf, String src)
Appends to a StringBuffer the String src where non-ASCII and XML special chars are escaped.

Parameters: buf The destination XML stream src The String to append to the stream

asStringOn

public static void asStringOn(StringBuffer sb, Iterator iter, String separator)
Copies the elements returned by the iterator onto the string buffer each delimited by the separator.

Parameters: sb StringBuffer iter Iterator separator String

htmlEncode

public static String htmlEncode(String string)

isSame

public static boolean isSame(String s1, String s2, boolean trim, boolean ignoreCase, boolean standardizeWhitespace)
Are the two String values the same. The Strings can be optionally trimmed before checking. The Strings can be optionally compared ignoring case. The Strings can be have embedded whitespace standardized before comparing. Two null values are treated as equal.

Parameters: s1 The first String. s2 The second String. trim Indicates if the Strings should be trimmed before comparison. ignoreCase Indicates if the case of the Strings should ignored during comparison. standardizeWhitespace Indicates if the embedded whitespace should be standardized before comparison.

Returns: true if the Strings are the same, false otherwise.

lengthOfShortestIn

public static int lengthOfShortestIn(String[] strings)
Return the length of the shortest string in the array. If any one of them is null then it returns 0.

Parameters: strings String[]

Returns: int

lpad

public static String lpad(String s, int length)
Left pads a string.

Parameters: s The String to pad length The desired minimum length of the resulting padded String

Returns: The resulting left padded String

maxCommonLeadingWhitespaceForAll

public static int maxCommonLeadingWhitespaceForAll(String[] strings)
Determine the maximum number of common leading whitespace characters the strings share in the same sequence. Useful for determining how many leading characters can be removed to shift all the text in the strings to the left without misaligning them.

Parameters: strings String[]

Returns: int

replaceString

public static String replaceString(String original, char oldChar, String newString)

replaceString

public static String replaceString(String original, String oldString, String newString)

substringsOf

public static String[] substringsOf(String source, char delimiter)
Parses the input source using the delimiter specified. This method is much faster than using the StringTokenizer or String.split(char) approach and serves as a replacement for String.split() for JDK1.3 that doesn't have it. FIXME - we're on JDK 1.4 now, can we replace this with String.split?

Parameters: source String delimiter char

Returns: String[]

substringsOf

public static String[] substringsOf(String str, String separator)
Much more efficient than StringTokenizer.

Parameters: str String separator char

Returns: String[]

trimStartOn

public static String[] trimStartOn(String[] strings, int trimDepth)
Trims off the leading characters off the strings up to the trimDepth specified. Returns the same strings if trimDepth = 0

Parameters: strings trimDepth

Returns: String[]