Class StringUtils
- java.lang.Object
-
- org.esa.snap.core.util.StringUtils
-
public class StringUtils extends Object
TheStringUtilsclass provides frequently used utility methods dealing withStringvalues and which are not found in thejava.lang.Stringclass.All functions have been implemented with extreme caution in order to provide a maximum performance.
- Version:
- $Revision$ $Date$
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classStringUtils.CaseType
-
Field Summary
Fields Modifier and Type Field Description static StringDELIMITOR_SPACEstatic StringDELIMITOR_UNDERSCORE
-
Constructor Summary
Constructors Modifier Constructor Description protectedStringUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static String[]addArrays(String[] arr1, String[] arr2)Returns a string array which is a concatenation of the two given string arrays.static String[]addToArray(String[] array, String toAdd)Gives a new StringArray who contains both, all Strings form the given Array and the given String.static booleanareEntriesUnique(String[] array)Retrieves whether the entries in the string array are unique - or not.static StringarrayToCsv(Object array)Gets a comma separate value string for the given array object.static StringarrayToString(Object array, String s)Converts an array into a string.static booleancontains(String[] a, String s)Tests whether a given string is contained in a given string array.static booleancontainsIgnoreCase(String[] a, String s)Tests whether a given string is contained in a given string array.static booleancontainsIgnoreCase(String input, String value)static booleancontainsIgnoreCase(List<String> l, String s)Tests whether a given string is contained in a list.static StringcreateValidName(String name, char[] validChars, char replaceChar)Creates a valid name for the given source name.static String[]csvToArray(String csvString)Gets a String[] from the given comma separated value string.static booleanendsWithIgnoreCase(String input, String... suffixes)Tests if this string ends with any of the given suffixes, ignoring the case sensitive.static StringfirstLetterUp(String string)Turns the first letter of the given string to upper case.static StringformatColor(Color c)Returns a string representation of the given color value.static StringgetStringCaseVariation(String s, StringUtils.CaseType caseType)static String[]getStringCaseVariations(String s)static intindexOf(String[] a, String s)Gets the array index of a given string in a given string array or-1if the string could not be found.static intindexOfIgnoreCase(String[] a, String s)Gets the array index of a given string in a given string array or-1if the string could not be found.static intindexOfIgnoreCase(List<String> l, String s)Gets the list index of a given string in a given string list or-1if the string could not be found.static intindexOfSpecificOccurrence(String a, String s, int i)Gets the array index of the i-th occurrence of a given string in a string array or-1if the string could not be found.static booleanisIdentifier(String s)Tests whether or not the given string is valid identifier.static booleanisIntegerString(String token)Checks whether the given token string represents an integer number or not.static booleanisIntegerString(String token, int radix)Checks whether the given token string represents an integer number or not.static booleanisNotNullAndNotEmpty(String str)Tests whether or not the given string is not null and not empty.static booleanisNullOrBlank(String value)Tests if the input string is null, or if it contains only white spaces.static booleanisNullOrEmpty(String str)Tests whether or not the given string is null or empty.static booleanisNumeric(String str, Class<? extends Number> clazz)Checks if the string is numericstatic Stringjoin(Object[] tokens, String separator)Joins the given array of tokens to a new text string.static Stringjoin(List<? extends Object> tokens, String separator)Joins the given array of tokens to a new text string.static String[]makeStringsUnique(String[] strings)Makes the strings in the given array unique.static StringpadNum(int num, int max, char c)Adds padding to an integer 1 becomes 001 or __1static ColorparseColor(String text)Converts a textual representation of an RGB(A) color to aColorobject.static String[]removeFromArray(String[] array, String toRemove)Gives a new StringArray who contains all Strings form the given Array excepting the given String.static String[]removeFromArray(String[] array, String[] toRemove)Gives a new StringArray who contains all Strings form the given Array excepting the String from the array to remove.static StringreplaceWord(String string, String oldWord, String newWord)Replaces all occurrences of the old word within the given string by the new word.static String[]split(String text, char[] separators, boolean trimTokens)Splits the given text into a list of tokens by using the supplied separators.static List<String>split(String text, char[] separators, boolean trimTokens, List<String> tokens)Splits the given text into a list of tokens by using the supplied separators.static booleanstartsWithIgnoreCase(String inputValue, String prefix)Tests if this string starts with the specified prefix, ignoring the case sensitive.static String[]stringToArray(String csvString, String delim)Gets a String[] from the given comma separated value string given a delimiter.static double[]toDoubleArray(String text, String delim)Converts the given text into andoublearray.static float[]toFloatArray(String text, String delim)Converts the given text into anfloatarray.static int[]toIntArray(String text, String delim)Converts the given text into anintarray.static String[]toStringArray(Object[] objArray)Converts the given object array into a string array.static String[]toStringArray(String text, String delims)Converts the given text into an array ofStringtokens.static StringtoXMLString(org.jdom2.Document element)static StringtoXMLString(org.jdom2.Element element)static StringtoXMLString(org.jdom2.output.Format format, org.jdom2.Document element)static StringtoXMLString(org.jdom2.output.Format format, org.jdom2.Element element)
-
-
-
Method Detail
-
split
public static List<String> split(String text, char[] separators, boolean trimTokens, List<String> tokens)
Splits the given text into a list of tokens by using the supplied separators. Empty tokens are created for successive separators, or if the supplied text starts with or ends with a separator. If the given text string is empty, and empty list is returned, but nevernull. The tokens added to list will never contain separators.- Parameters:
text- the text to be split into tokensseparators- the characters used to separate the tokenstrimTokens- if true, white space characters are removed from both ends of each tokentokens- can be null. If not null, all tokens are added to this list and the method it, otherwise a new list is created.- Returns:
- a list of tokens extracted from the given text, never
null - Throws:
IllegalArgumentException- if one of the arguments was null- See Also:
StringTokenizer
-
split
public static String[] split(String text, char[] separators, boolean trimTokens)
Splits the given text into a list of tokens by using the supplied separators. Empty tokens are created for successive separators, or if the the supplied text starts with or ends with a separator. If the given text string is empty, and empty array is returned, but nevernull. The tokens in the returned array will never contain separators.- Parameters:
text- the text to be splitted into tokensseparators- the characters used to separate the tokenstrimTokens- if true, white space characters are removed from both ends of each token- Returns:
- an array of tokens extracted from the given text, never
null - See Also:
StringTokenizer
-
join
public static String join(Object[] tokens, String separator)
Joins the given array of tokens to a new text string. The given separator string is put between each of the tokens. If a token in the array isnullor empty, an empty string string is appended to the resulting text. The resulting text string will always containtokens.length - 1separators, if the separator is not part of one of the tokens itself.- Parameters:
tokens- the list of tokens to join, must not be nullseparator- the separator string, must not be null- Returns:
- the list of tokens as a text string
- Throws:
IllegalArgumentException- if one of the arguments was null- See Also:
split(String, char[], boolean)
-
join
public static String join(List<? extends Object> tokens, String separator)
Joins the given array of tokens to a new text string. The given separator string is put between each of the tokens. If a token in the array isnullor empty, an empty string is appended to the resulting text. The resulting text string will always containtokens.length - 1separators, if the separator is not part of one of the tokens itself.- Parameters:
tokens- the list of tokens to join, must not be nullseparator- the separator string, must not be null- Returns:
- the list of tokens as a text string
- Throws:
IllegalArgumentException- if one of the arguments was null- See Also:
join(Object[], String)
-
isIntegerString
public static boolean isIntegerString(String token)
Checks whether the given token string represents an integer number or not.- Parameters:
token- the token string to be checked- Returns:
trueif the string represents an integer (radix=10)
-
isIntegerString
public static boolean isIntegerString(String token, int radix)
Checks whether the given token string represents an integer number or not.- Parameters:
token- the token string to be checkedradix- the radix of the integer represented by the token string- Returns:
trueif the string represents an integer with tzhe given radix
-
toIntArray
public static int[] toIntArray(String text, String delim)
Converts the given text into anintarray.The number values are expected to be separated by one of the characters given in the delimiter string.
If the delimiter string is null or empty, the default delimiter "," will be used.
- Parameters:
text- the text to be converteddelim- the delimiter between the number values- Returns:
- the
intarray parsed from the given text - Throws:
IllegalArgumentException- if the text is null or cannot be converted to an array of the requested number type
-
toFloatArray
public static float[] toFloatArray(String text, String delim)
Converts the given text into anfloatarray.The number values are expected to be separated by one of the characters given in the delimiter string.
If the delimiter string is null or empty, the default delimiter "," will be used.
- Parameters:
text- the text to be converteddelim- the delimiter between the number values- Returns:
- the
floatarray parsed from the given text - Throws:
IllegalArgumentException- if the text is null or cannot be converted to an array of the requested number type
-
toDoubleArray
public static double[] toDoubleArray(String text, String delim)
Converts the given text into andoublearray.The number values are expected to be separated by one of the characters given in the delimiter string.
If the delimiter string is null or empty, the default delimiter "," will be used.
- Parameters:
text- the text to be converteddelim- the delimiter between the number values- Returns:
- the
doublearray parsed from the given text - Throws:
IllegalArgumentException- if the text is null or cannot be converted to an array of the requested number type
-
toStringArray
public static String[] toStringArray(String text, String delims)
Converts the given text into an array ofStringtokens.The number values are expected to be separated by one of the characters given in the delimiter string.
If the delimiter string is null or empty, the default delimiter "," will be used.
- Parameters:
text- the text to be converteddelims- the delimiter characters used between the tokens- Returns:
- the
Stringarray parsed from the given text, never null - Throws:
IllegalArgumentException- if the text is null or cannot be converted to an array of the requested number type
-
toStringArray
public static String[] toStringArray(Object[] objArray)
Converts the given object array into a string array. If the given object array is already an instance of a string array, it is simply type-casted and returned. Otherwise, a new string array is created and - for each non-null object - the value ofobject.toString()is stored, null-values remain null-values.- Parameters:
objArray- the object array to be converted, ifnullthe method returnsnulltoo- Returns:
- the string array
-
isNullOrEmpty
public static boolean isNullOrEmpty(String str)
Tests whether or not the given string is null or empty.- Parameters:
str- the string to be tested- Returns:
trueif so
-
isNotNullAndNotEmpty
public static boolean isNotNullAndNotEmpty(String str)
Tests whether or not the given string is not null and not empty.- Parameters:
str- the string to be tested- Returns:
trueif so
-
isNullOrBlank
public static boolean isNullOrBlank(String value)
Tests if the input string is null, or if it contains only white spaces.- Parameters:
value- the input string to check- Returns:
trueif the input string is null or blank;falseotherwise.
-
addToArray
public static String[] addToArray(String[] array, String toAdd) throws IllegalArgumentException
Gives a new StringArray who contains both, all Strings form the given Array and the given String. The given String was added to the end of array- Returns:
- new
String[]with all Strings - Throws:
IllegalArgumentException- if one of the arguments arenull
-
removeFromArray
public static String[] removeFromArray(String[] array, String toRemove) throws IllegalArgumentException
Gives a new StringArray who contains all Strings form the given Array excepting the given String. The first occurrence of the given String was removed.- Returns:
- new
String[]without the first occurrence of the given String - Throws:
IllegalArgumentException- if one of the arguments arenull
-
removeFromArray
public static String[] removeFromArray(String[] array, String[] toRemove) throws IllegalArgumentException
Gives a new StringArray who contains all Strings form the given Array excepting the String from the array to remove. The first occurrence of the given Strings in the string array to remove was removed.- Returns:
- new
String[]without the first occurrence of the given Strings in the string array to remove - Throws:
IllegalArgumentException- if array isnull
-
addArrays
public static String[] addArrays(String[] arr1, String[] arr2) throws IllegalArgumentException
Returns a string array which is a concatenation of the two given string arrays.- Returns:
- a new
String[]which is a concatenation of the two given string arrays. - Throws:
IllegalArgumentException- if one of the arguments arenull
-
contains
public static boolean contains(String[] a, String s)
Tests whether a given string is contained in a given string array.- Parameters:
a- the string array in which to searchs- the string for which the search is performed- Returns:
trueif the stringsis contained in the arraya- Throws:
IllegalArgumentException- if one of the arguments arenull
-
containsIgnoreCase
public static boolean containsIgnoreCase(String[] a, String s)
Tests whether a given string is contained in a given string array.- Parameters:
a- the string array in which to searchs- the string for which the search is performed- Returns:
trueif the stringsis contained in the arraya- Throws:
IllegalArgumentException- if one of the arguments arenull
-
startsWithIgnoreCase
public static boolean startsWithIgnoreCase(String inputValue, String prefix)
Tests if this string starts with the specified prefix, ignoring the case sensitive.- Parameters:
inputValue- the input string to testprefix- the prefix- Returns:
trueif the input string is a prefix;falseotherwise.
-
endsWithIgnoreCase
public static boolean endsWithIgnoreCase(String input, String... suffixes)
Tests if this string ends with any of the given suffixes, ignoring the case sensitive.- Parameters:
input- the input string to testsuffixes- the list of suffixes- Returns:
trueif the input string is a prefix;falseotherwise.
-
containsIgnoreCase
public static boolean containsIgnoreCase(List<String> l, String s)
Tests whether a given string is contained in a list.- Parameters:
l- the string list in which to searchs- the string for which the search is performed- Returns:
trueif the stringsis contained in the arraya- Throws:
IllegalArgumentException- if one of the arguments arenull
-
areEntriesUnique
public static boolean areEntriesUnique(String[] array)
Retrieves whether the entries in the string array are unique - or not.- Parameters:
array- the array containing the strings- Returns:
trueif the entries in the string array are unique, otherwisefalse.
-
indexOf
public static int indexOf(String[] a, String s)
Gets the array index of a given string in a given string array or-1if the string could not be found.- Parameters:
a- the string array in which to searchs- the string for which the search is performed- Returns:
- the array index of the first occurence of
sinaor-1if it is not cointained in the array - Throws:
IllegalArgumentException- if one of the arguments isnull
-
indexOfIgnoreCase
public static int indexOfIgnoreCase(String[] a, String s)
Gets the array index of a given string in a given string array or-1if the string could not be found.- Parameters:
a- the string array in which to searchs- the string for which the search is performed- Returns:
- the array index of the first occurrence of
sinaor-1if it is not contained in the array - Throws:
IllegalArgumentException- if one of the arguments isnull
-
indexOfIgnoreCase
public static int indexOfIgnoreCase(List<String> l, String s)
Gets the list index of a given string in a given string list or-1if the string could not be found.- Parameters:
l- the string list in which to searchs- the string for which the search is performed- Returns:
- the array index of the first occurrence of
sinaor-1if it is not contained in the array - Throws:
IllegalArgumentException- if one of the arguments isnull
-
arrayToCsv
public static String arrayToCsv(Object array)
Gets a comma separate value string for the given array object.- Parameters:
array- the array object of values.- Returns:
- a comma separate value string for the given array object.
- Throws:
IllegalArgumentException- if the given Object is not anarrayornull.
-
arrayToString
public static String arrayToString(Object array, String s)
Converts an array into a string.- Parameters:
array- the array objects- the separator string, e.g. ","- Returns:
- a string represenation of the array
- Throws:
IllegalArgumentException- if the given Object is not anarrayornull.
-
csvToArray
public static String[] csvToArray(String csvString)
Gets a String[] from the given comma separated value string.- Parameters:
csvString- the CSV (comma separated value) String.- Returns:
- an array of strings created from the given comma separated value string, never
null - Throws:
IllegalArgumentException- if the given csvString isnullorempty.
-
stringToArray
public static String[] stringToArray(String csvString, String delim)
Gets a String[] from the given comma separated value string given a delimiter.- Parameters:
csvString- the delimited String.delim- the separator string, e.g. ","- Returns:
- an array of strings created from the given comma separated value string, never
null - Throws:
IllegalArgumentException- if the given Object is not anarrayornull.
-
parseColor
public static Color parseColor(String text) throws NumberFormatException
Converts a textual representation of an RGB(A) color to aColorobject.- Throws:
NumberFormatException
-
formatColor
public static String formatColor(Color c)
Returns a string representation of the given color value.
-
createValidName
public static String createValidName(String name, char[] validChars, char replaceChar)
Creates a valid name for the given source name. The method returns a string which is the given name where each occurence of a character which is not a letter, a digit or one of the given valid characters is replaced by the given replace character. The returned string always has the same length as the source name.- Parameters:
name- the source name, must not benullvalidChars- the array of valid charactersreplaceChar- the replace character
-
replaceWord
public static String replaceWord(String string, String oldWord, String newWord)
Replaces all occurrences of the old word within the given string by the new word.- Parameters:
string- the string within all occurrences of the old word are to be replaced.oldWord- the word to be replaced. Must not benulland must not be empty.newWord- the new word. Must not benull.- Returns:
- the resulting string, never
null.
-
isIdentifier
public static boolean isIdentifier(String s)
Tests whether or not the given string is valid identifier. Valid identifiers have a length greater than zero, start with a letter or underscore followed by letters, digits or underscores.- Parameters:
s- the string to test- Returns:
trueif the s is a valid node ifentifier,falseotherwise
-
isNumeric
public static boolean isNumeric(String str, Class<? extends Number> clazz)
Checks if the string is numeric- Parameters:
str- the String inputclazz- the type to check against- Returns:
- true if numeric false if not
-
firstLetterUp
public static String firstLetterUp(String string)
Turns the first letter of the given string to upper case.- Parameters:
string- the string to change- Returns:
- a changed string
-
indexOfSpecificOccurrence
public static int indexOfSpecificOccurrence(String a, String s, int i)
Gets the array index of the i-th occurrence of a given string in a string array or-1if the string could not be found.- Parameters:
a- the string array in which to searchs- the string for which the search is performedi- the index of the occurrence of the requested string- Returns:
- the array index of the
i-thoccurrence ofsinaor-1ifsis contained less thanitimes in the array or ifiis less than 1 - Throws:
IllegalArgumentException- ifasarenull
-
padNum
public static String padNum(int num, int max, char c)
Adds padding to an integer 1 becomes 001 or __1- Parameters:
num- the integer valuemax- the desired string lengthc- the inserted character- Returns:
- padded number as string
-
makeStringsUnique
public static String[] makeStringsUnique(String[] strings)
Makes the strings in the given array unique. Strings which occur more than once in the array get an appendix with the index of its occurrence. Strings that only differ in their capitalization will be treated as having the same string value, but in the output they will keep their respective capitalization Example:'name', 'duplicate', 'other', 'duplicate', 'case_duplicate', 'CASE_DUPLICATE' --> 'name', 'duplicate_1', 'other', 'duplicate_2', 'case_duplicate_1', 'CASE_DUPLICATE_2'- Parameters:
strings- the strings to make unique- Returns:
- a new array with the changed names
-
toXMLString
public static String toXMLString(org.jdom2.Element element)
-
toXMLString
public static String toXMLString(org.jdom2.output.Format format, org.jdom2.Element element)
-
toXMLString
public static String toXMLString(org.jdom2.Document element)
-
toXMLString
public static String toXMLString(org.jdom2.output.Format format, org.jdom2.Document element)
-
getStringCaseVariation
public static String getStringCaseVariation(String s, StringUtils.CaseType caseType)
-
-