net.sourceforge.pmd.util
Class StringUtil

java.lang.Object
  extended by net.sourceforge.pmd.util.StringUtil

public class StringUtil
extends Object


Field Summary
static String[] EMPTY_STRINGS
           
 
Constructor Summary
StringUtil()
           
 
Method Summary
static void appendXmlEscaped(StringBuffer buf, String src)
          Appends to a StringBuffer the String src where non-ASCII and XML special chars are escaped.
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.
static String htmlEncode(String string)
           
static boolean isSame(String s1, String s2, boolean trim, boolean ignoreCase, boolean standardizeWhitespace)
          Are the two String values the same.
static int lengthOfShortestIn(String[] strings)
          Return the length of the shortest string in the array.
static String lpad(String s, int length)
          Left pads a string.
static int maxCommonLeadingWhitespaceForAll(String[] strings)
          Determine the maximum number of common leading whitespace characters the strings share in the same sequence.
static String replaceString(String original, char oldChar, String newString)
           
static String replaceString(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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EMPTY_STRINGS

public static final String[] EMPTY_STRINGS
Constructor Detail

StringUtil

public StringUtil()
Method Detail

replaceString

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

replaceString

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

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

htmlEncode

public static String htmlEncode(String string)

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[]

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

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

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

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[]

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

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.


Copyright © 2009-2012 SonarSource. All Rights Reserved.