edu.stanford.nlp.util
Class StringUtils

java.lang.Object
  extended byedu.stanford.nlp.util.StringUtils

public class StringUtils
extends Object

Stringtils is a class for random String things.

Author:
Dan Klein, Christopher Manning, Tim Grow (grow@stanford.edu)

Method Summary
static Map argsToMap(String[] args)
          Parses command line arguments into a Map.
static Map argsToMap(String[] args, Map flagsToNumArgs)
          Parses command line arguments into a Map.
static Properties argsToProperties(String[] args)
           
static Properties argsToProperties(String[] args, Map flagsToNumArgs)
          Analagous to argsToMap(java.lang.String[]).
static String exactlyN(Object obj, int totalChars)
          Pad or trim the toString value of the given Object.
static String exactlyN(String inStr, int num)
          Pad or trim so as to produce a string of exactly a certain length.
static String fileNameClean(String s)
          Returns a "clean" version of the given filename in which spaces have been converted to dashes and all non-alphaneumeric chars are underscores.
static boolean find(String str, String regex)
          Say whether this regular expression can be found inside this String.
static String join(List l)
          Joins elems with a space.
static String join(List l, String glue)
          Joins each elem in the List with the given glue.
static String join(Object[] elements)
          Joins elems with a space.
static String join(Object[] elements, String glue)
          Joins each elem in the array with the given glue.
static String leftPad(double d, int totalChars)
           
static String leftPad(int i, int totalChars)
           
static String leftPad(Object obj, int totalChars)
           
static String leftPad(String str, int totalChars)
          Pads the given String to the left with spaces to ensure that it's at least totalChars long.
static boolean lookingAt(String str, String regex)
          Say whether this regular expression can be found at the beginning of this String.
static boolean matches(String str, String regex)
          Say whether this regular expression matches this String.
static int nthIndex(String s, char ch, int n)
          Returns the index of the nth occurrence of ch in s, or -1 if there are less than n occurrences of ch.
static String pad(Object obj, int totalChars)
          Pads the toString value of the given Object.
static String pad(String str, int totalChars)
          Return a String of length a minimum of totalChars characters by padding the input String str with spaces.
static String paddedIntToString(int n, int smallestDigit, int biggestDigit)
          This returns a string from decimal digit smallestDigit to decimal digit biggest digit.
static Map parseCommandLineArguments(String[] args)
          THIS IS HIGHLY SUPERIOR TO THE OVERLY COMPLEXIFIED CODE THAT COMES BEFORE IT.
static void printToFile(String filename, String message)
          Prints to a file.
static void printToFile(String filename, String message, boolean append)
          Prints to a file.
static String slurpFile(File file)
          Returns all the text in the given File.
static String slurpFile(String filename)
          Returns all the text in the given File.
static String slurpURL(URL u)
          Returns all the text at the given URL.
static List split(String s)
          Splits on whitespace (\\s+).
static List split(String str, String regex)
          Splits the given string using the given regex as delimiters.
static String trim(Object obj, int maxWidth)
           
static String trim(String s, int maxWidth)
          Returns s if it's at most maxWidth chars, otherwise chops right side to fit.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

find

public static boolean find(String str,
                           String regex)
Say whether this regular expression can be found inside this String. This method provides one of the two "missing" convenience methods for regular expressions in the String class in JDK1.4. This is the one you'll want to use all the time if you're used to Perl. What were they smoking?

Parameters:
str - String to search for match in
regex - String to compile as the regular expression
Returns:
Whether the regex can be found in str

lookingAt

public static boolean lookingAt(String str,
                                String regex)
Say whether this regular expression can be found at the beginning of this String. This method provides one of the two "missing" convenience methods for regular expressions in the String class in JDK1.4.

Parameters:
str - String to search for match at start of
regex - String to compile as the regular expression
Returns:
Whether the regex can be found at the start of str

matches

public static boolean matches(String str,
                              String regex)
Say whether this regular expression matches this String. This method is the same as the String.matches() method, and is included just to give a call that is parallel to the other static regex methods in this class.

Parameters:
str - String to search for match at start of
regex - String to compile as the regular expression
Returns:
Whether the regex matches the whole of this str

slurpFile

public static String slurpFile(File file)
                        throws IOException
Returns all the text in the given File.

Throws:
IOException

slurpFile

public static String slurpFile(String filename)
Returns all the text in the given File.


slurpURL

public static String slurpURL(URL u)
                       throws IOException
Returns all the text at the given URL.

Throws:
IOException

join

public static String join(List l,
                          String glue)
Joins each elem in the List with the given glue. For example, given a list of Integers, you can create a comma-separated list by calling join(numbers, ", ").


join

public static String join(Object[] elements,
                          String glue)
Joins each elem in the array with the given glue. For example, given a list of ints, you can create a comma-separated list by calling join(numbers, ", ").


join

public static String join(List l)
Joins elems with a space.


join

public static String join(Object[] elements)
Joins elems with a space.


split

public static List split(String s)
Splits on whitespace (\\s+).


split

public static List split(String str,
                         String regex)
Splits the given string using the given regex as delimiters. This method is the same as the String.split() method (except it throws the results in a List), and is included just to give a call that is parallel to the other static regex methods in this class.

Parameters:
str - String to split up
regex - String to compile as the regular expression
Returns:
List of Strings resulting from splitting on the regex

pad

public static String pad(String str,
                         int totalChars)
Return a String of length a minimum of totalChars characters by padding the input String str with spaces. If str is already longer than totalChars, it is returned unchanged.


pad

public static String pad(Object obj,
                         int totalChars)
Pads the toString value of the given Object.


exactlyN

public static String exactlyN(String inStr,
                              int num)
Pad or trim so as to produce a string of exactly a certain length.

Parameters:
inStr - The String to be padded or truncated
num - The desired length

exactlyN

public static String exactlyN(Object obj,
                              int totalChars)
Pad or trim the toString value of the given Object.


leftPad

public static String leftPad(String str,
                             int totalChars)
Pads the given String to the left with spaces to ensure that it's at least totalChars long.


leftPad

public static String leftPad(Object obj,
                             int totalChars)

leftPad

public static String leftPad(int i,
                             int totalChars)

leftPad

public static String leftPad(double d,
                             int totalChars)

trim

public static String trim(String s,
                          int maxWidth)
Returns s if it's at most maxWidth chars, otherwise chops right side to fit.


trim

public static String trim(Object obj,
                          int maxWidth)

fileNameClean

public static String fileNameClean(String s)
Returns a "clean" version of the given filename in which spaces have been converted to dashes and all non-alphaneumeric chars are underscores.


nthIndex

public static int nthIndex(String s,
                           char ch,
                           int n)
Returns the index of the nth occurrence of ch in s, or -1 if there are less than n occurrences of ch.


paddedIntToString

public static String paddedIntToString(int n,
                                       int smallestDigit,
                                       int biggestDigit)
This returns a string from decimal digit smallestDigit to decimal digit biggest digit. Smallest digit is labeled 1, and the limits are inclusive.


argsToMap

public static Map argsToMap(String[] args)
Parses command line arguments into a Map. Arguments of the form

-flag1 arg1a arg1b ... arg1m -flag2 -flag3 arg3a ... arg3n

will be parsed so that the flag is a key in the Map (including the hyphen) and its value will be a String[] containing the optional arguments (if present). The non-flag values not captured as flag arguments are collected into a String[] array and returned as the value of null in the Map. In this invocation, flags cannot take arguments, so all the String array values other than the value for null will be zero-length.

Parameters:
args -
Returns:
a Map of flag names to flag argument String[] arrays.

argsToMap

public static Map argsToMap(String[] args,
                            Map flagsToNumArgs)
Parses command line arguments into a Map. Arguments of the form

-flag1 arg1a arg1b ... arg1m -flag2 -flag3 arg3a ... arg3n

will be parsed so that the flag is a key in the Map (including the hyphen) and its value will be a String[] containing the optional arguments (if present). The non-flag values not captured as flag arguments are collected into a String[] array and returned as the value of null in the Map. In this invocation, the maximum number of arguments for each flag can be specified as an Integer value of the appropriate flag key in the flagsToNumArgs Map argument. (By default, flags cannot take arguments.)

Example of usage:

Map flagsToNumArgs = new HashMap(); flagsToNumArgs.put("-x",new Integer(2)); flagsToNumArgs.put("-d",new Integer(1)); Map result = parseCommandLineArguments(args,flagsToNumArgs);

Parameters:
args - the argument array to be parsed
flagsToNumArgs - a Map of flag names to Integer values specifying the maximum number of allowed arguments for that flag (default 0).
Returns:
a Map of flag names to flag argument String[] arrays.

argsToProperties

public static Properties argsToProperties(String[] args)

argsToProperties

public static Properties argsToProperties(String[] args,
                                          Map flagsToNumArgs)
Analagous to argsToMap(java.lang.String[]). However, there are several key differences between this method and argsToMap(java.lang.String[]):

printToFile

public static void printToFile(String filename,
                               String message,
                               boolean append)
Prints to a file. If the file already exists, appends if append=true, and overwrites if append=false


printToFile

public static void printToFile(String filename,
                               String message)
Prints to a file. If the file does not exist, rewrites the file; does not append.


parseCommandLineArguments

public static Map parseCommandLineArguments(String[] args)
THIS IS HIGHLY SUPERIOR TO THE OVERLY COMPLEXIFIED CODE THAT COMES BEFORE IT. Parses command line arguments into a Map. Arguments of the form -flag1 arg1 -flag2 -flag3 arg3 will be parsed so that the flag is a key in the Map (including the hyphen) and the optional argument will be its value (if present).

Parameters:
args -
Returns:


Stanford NLP Group