public class StringGroovyMethods extends DefaultGroovyMethodsSupport
public static String reverse(String self)
provides a reverse()
method for String
.
NOTE: While this class contains many 'public' static methods, it is primarily regarded as an internal class (its internal package name suggests this also). We value backwards compatibility of these methods when used within Groovy but value less backwards compatibility at the Java method call level. I.e. future versions of Groovy may remove or move a method call in this file but would normally aim to keep the method available from within Groovy.
Constructor and Description |
---|
StringGroovyMethods() |
Modifier and Type | Method and Description |
---|---|
static boolean |
asBoolean(CharSequence string)
Coerce a string (an instance of CharSequence) to a boolean value.
|
static boolean |
asBoolean(Matcher matcher)
Coerce a Matcher instance to a boolean value.
|
static <T> T |
asType(CharSequence self,
Class<T> c)
Provides a method to perform custom 'dynamic' type conversion
to the given class using the
as operator. |
static <T> T |
asType(GString self,
Class<T> c)
Converts the GString to a File, or delegates to the default
DefaultGroovyMethods.asType(Object, Class) |
static <T> T |
asType(String self,
Class<T> c)
Provides a method to perform custom 'dynamic' type conversion
to the given class using the
as operator. |
static Pattern |
bitwiseNegate(CharSequence self)
Turns a CharSequence into a regular expression Pattern
|
static Pattern |
bitwiseNegate(String self)
Deprecated.
Use the CharSequence version
|
static String |
capitalize(CharSequence self)
Convenience method to capitalize the first letter of a CharSequence
(typically the first letter of a word).
|
static String |
capitalize(String self)
Deprecated.
Use the CharSequence version
|
static String |
center(CharSequence self,
Number numberOfChars)
Pad a CharSequence to a minimum length specified by numberOfChars by adding the space character around it as many times as needed so that it remains centered.
|
static String |
center(CharSequence self,
Number numberOfChars,
CharSequence padding)
Pad a CharSequence to a minimum length specified by numberOfChars, appending the supplied padding CharSequence around the original as many times as needed keeping it centered.
|
static String |
center(String self,
Number numberOfChars)
Deprecated.
Use the CharSequence version
|
static String |
center(String self,
Number numberOfChars,
String padding)
Deprecated.
Use the CharSequence version
|
static String |
collectReplacements(String orig,
Closure<String> transform)
Iterate through this String a character at a time collecting either the
original character or a transformed replacement String.
|
static boolean |
contains(CharSequence self,
CharSequence text)
Provide an implementation of contains() like
Collection.contains(Object) to make CharSequences more polymorphic. |
static boolean |
contains(String self,
String text)
Deprecated.
Use the CharSequence version
|
static int |
count(CharSequence self,
CharSequence text)
Count the number of occurrences of a sub CharSequence.
|
static int |
count(String self,
String text)
Deprecated.
Use the CharSequence version
|
static String |
denormalize(CharSequence self)
Return a CharSequence with lines (separated by LF, CR/LF, or CR)
terminated by the platform specific line separator.
|
static String |
denormalize(String self)
Deprecated.
Use the CharSequence version
|
static CharSequence |
drop(CharSequence self,
int num)
Drops the given number of chars from the head of this CharSequence
if they are available.
|
static String |
drop(GString self,
int num)
A GString variant of the equivalent CharSequence method.
|
static CharSequence |
dropWhile(CharSequence self,
Closure condition)
Create a suffix of the given CharSequence by dropping as many characters as possible from the
front of the original CharSequence such that calling the given closure condition evaluates to
true when passed each of the dropped characters.
|
static String |
dropWhile(GString self,
Closure condition)
A GString variant of the equivalent CharSequence method.
|
static <T> T |
eachLine(CharSequence self,
Closure<T> closure)
Iterates through this CharSequence line by line.
|
static <T> T |
eachLine(CharSequence self,
int firstLine,
Closure<T> closure)
Iterates through this CharSequence line by line.
|
static <T> T |
eachLine(String self,
Closure<T> closure)
Deprecated.
Use the CharSequence version
|
static <T> T |
eachLine(String self,
int firstLine,
Closure<T> closure)
Deprecated.
Use the CharSequence version
|
static String |
eachMatch(String self,
Pattern pattern,
Closure closure)
Process each regex group matched substring of the given pattern.
|
static String |
eachMatch(String self,
String regex,
Closure closure)
Process each regex group matched substring of the given string.
|
static <T extends CharSequence> |
eachMatch(T self,
CharSequence regex,
Closure closure)
Process each regex group matched substring of the given CharSequence.
|
static <T extends CharSequence> |
eachMatch(T self,
Pattern pattern,
Closure closure)
Process each regex group matched substring of the given pattern.
|
static String |
expand(CharSequence self)
Expands all tabs into spaces with tabStops of size 8.
|
static String |
expand(CharSequence self,
int tabStop)
Expands all tabs into spaces.
|
static String |
expand(String self)
Deprecated.
Use the CharSequence version
|
static String |
expand(String self,
int tabStop)
Deprecated.
Use the CharSequence version
|
static String |
expandLine(CharSequence self,
int tabStop)
Expands all tabs into spaces.
|
static String |
expandLine(String self,
int tabStop)
Deprecated.
Use the CharSequence version
|
static String |
find(CharSequence self,
CharSequence regex)
Finds the first occurrence of a regular expression String within a String.
|
static String |
find(CharSequence self,
CharSequence regex,
Closure closure)
Returns the result of calling a closure with the first occurrence of a regular expression found within a CharSequence.
|
static String |
find(CharSequence self,
Pattern pattern)
Finds the first occurrence of a compiled regular expression Pattern within a String.
|
static String |
find(CharSequence self,
Pattern pattern,
Closure closure)
Returns the result of calling a closure with the first occurrence of a compiled regular expression found within a String.
|
static String |
find(String self,
Pattern pattern)
Deprecated.
Use the CharSequence version
|
static String |
find(String self,
Pattern pattern,
Closure closure)
Deprecated.
Use the CharSequence version
|
static String |
find(String self,
String regex)
Deprecated.
Use the CharSequence version
|
static String |
find(String self,
String regex,
Closure closure)
Deprecated.
Use the CharSequence version
|
static List<String> |
findAll(CharSequence self,
CharSequence regex)
Returns a (possibly empty) list of all occurrences of a regular expression (provided as a CharSequence) found within a CharSequence.
|
static <T> List<T> |
findAll(CharSequence self,
CharSequence regex,
Closure<T> closure)
Finds all occurrences of a regular expression string within a CharSequence.
|
static List<String> |
findAll(CharSequence self,
Pattern pattern)
Returns a (possibly empty) list of all occurrences of a regular expression (in Pattern format) found within a CharSequence.
|
static <T> List<T> |
findAll(CharSequence self,
Pattern pattern,
Closure<T> closure)
Finds all occurrences of a compiled regular expression Pattern within a CharSequence.
|
static List<String> |
findAll(String self,
Pattern pattern)
Deprecated.
Use the CharSequence version
|
static <T> List<T> |
findAll(String self,
Pattern pattern,
Closure<T> closure)
Deprecated.
Use the CharSequence version
|
static List<String> |
findAll(String self,
String regex)
Deprecated.
Use the CharSequence version
|
static <T> List<T> |
findAll(String self,
String regex,
Closure<T> closure)
Deprecated.
Use the CharSequence version
|
static String |
getAt(CharSequence self,
Collection indices)
Select a List of characters from a CharSequence using a Collection
to identify the indices to be selected.
|
static String |
getAt(CharSequence text,
EmptyRange range)
Support the range subscript operator for CharSequence or StringBuffer with EmptyRange
|
static CharSequence |
getAt(CharSequence text,
int index)
Support the subscript operator for CharSequence.
|
static CharSequence |
getAt(CharSequence text,
IntRange range)
Support the range subscript operator for CharSequence with IntRange
|
static CharSequence |
getAt(CharSequence text,
Range range)
Support the range subscript operator for CharSequence
|
static String |
getAt(GString text,
int index)
Support the subscript operator for GString.
|
static String |
getAt(GString text,
IntRange range)
Support the range subscript operator for GString with IntRange
|
static String |
getAt(GString text,
Range range)
Support the range subscript operator for GString
|
static List |
getAt(Matcher self,
Collection indices)
Select a List of values from a Matcher using a Collection
to identify the indices to be selected.
|
static Object |
getAt(Matcher matcher,
int idx)
Support the subscript operator, e.g. matcher[index], for a regex Matcher.
|
static String |
getAt(String self,
Collection indices)
Deprecated.
Use the CharSequence version
|
static String |
getAt(String text,
EmptyRange range)
Deprecated.
Use the CharSequence version
|
static String |
getAt(String text,
int index)
Support the subscript operator for String.
|
static String |
getAt(String text,
IntRange range)
Support the range subscript operator for String with IntRange
|
static String |
getAt(String text,
Range range)
Support the range subscript operator for String
|
static char[] |
getChars(CharSequence self)
Converts the given CharSequence into an array of characters.
|
static char[] |
getChars(String self)
Deprecated.
Use the CharSequence version
|
static int |
getCount(Matcher matcher)
Find the number of Strings matched to the given Matcher.
|
static boolean |
hasGroup(Matcher matcher)
Check whether a Matcher contains a group or not.
|
static boolean |
isAllWhitespace(CharSequence self)
True if a CharSequence only contains whitespace characters.
|
static boolean |
isAllWhitespace(String self)
Deprecated.
Use the CharSequence version
|
static boolean |
isBigDecimal(CharSequence self)
Determine if a CharSequence can be parsed as a BigDecimal.
|
static boolean |
isBigDecimal(String self)
Deprecated.
Use the CharSequence version
|
static boolean |
isBigInteger(CharSequence self)
Determine if a CharSequence can be parsed as a BigInteger.
|
static boolean |
isBigInteger(String self)
Deprecated.
Use the CharSequence version
|
static boolean |
isCase(CharSequence caseValue,
Object switchValue)
'Case' implementation for a CharSequence, which uses equals between the
toString() of the caseValue and the switchValue.
|
static boolean |
isCase(GString caseValue,
Object switchValue)
Deprecated.
Use the CharSequence version
|
static boolean |
isCase(Pattern caseValue,
Object switchValue)
'Case' implementation for the
Pattern class, which allows
testing a String against a number of regular expressions. |
static boolean |
isCase(String caseValue,
Object switchValue)
Deprecated.
Use the CharSequence version
|
static boolean |
isDouble(CharSequence self)
Determine if a CharSequence can be parsed as a Double.
|
static boolean |
isDouble(String self)
Deprecated.
Use the CharSequence version
|
static boolean |
isFloat(CharSequence self)
Determine if a CharSequence can be parsed as a Float.
|
static boolean |
isFloat(String self)
Deprecated.
Use the CharSequence version
|
static boolean |
isInteger(CharSequence self)
Determine if a CharSequence can be parsed as an Integer.
|
static boolean |
isInteger(String self)
Deprecated.
Use the CharSequence version
|
static boolean |
isLong(CharSequence self)
Determine if a CharSequence can be parsed as a Long.
|
static boolean |
isLong(String self)
Deprecated.
Use the CharSequence version
|
static boolean |
isNumber(CharSequence self)
Determine if a CharSequence can be parsed as a Number.
|
static boolean |
isNumber(String self)
Deprecated.
Use the CharSequence version
|
static Iterator |
iterator(Matcher matcher)
Returns an
Iterator which traverses each match. |
static StringBuilder |
leftShift(CharSequence self,
Object value)
Overloads the left shift operator to provide an easy way to append multiple
objects as string representations to a CharSequence.
|
static StringBuffer |
leftShift(StringBuffer self,
Object value)
Overloads the left shift operator to provide an easy way to append multiple
objects as string representations to a StringBuffer.
|
static StringBuilder |
leftShift(StringBuilder self,
Object value)
Overloads the left shift operator to provide syntactic sugar for appending to a StringBuilder.
|
static StringBuffer |
leftShift(String self,
Object value)
Overloads the left shift operator to provide an easy way to append multiple
objects as string representations to a String.
|
static boolean |
matches(CharSequence self,
Pattern pattern)
Tells whether or not a CharSequence matches the given
compiled regular expression Pattern.
|
static boolean |
matches(String self,
Pattern pattern)
Deprecated.
Use the CharSequence version
|
static boolean |
matchesPartially(Matcher matcher)
Given a matcher that matches a string against a pattern,
this method returns true when the string matches the pattern or if a longer string, could match the pattern.
|
static String |
minus(CharSequence self,
Object target)
Remove a part of a CharSequence by replacing the first occurrence
of target within self with '' and returns the result.
|
static String |
minus(CharSequence self,
Pattern pattern)
Remove a part of a CharSequence.
|
static String |
minus(String self,
Object target)
Deprecated.
Use the CharSequence version
|
static String |
minus(String self,
Pattern pattern)
Deprecated.
Use the CharSequence version
|
static String |
multiply(CharSequence self,
Number factor)
Repeat a CharSequence a certain number of times.
|
static String |
multiply(String self,
Number factor)
Deprecated.
Use the CharSequence version
|
static String |
next(CharSequence self)
This method is called by the ++ operator for the class CharSequence.
|
static String |
next(String self)
Deprecated.
Use the CharSequence version
|
static String |
normalize(CharSequence self)
Return a String with linefeeds and carriage returns normalized to linefeeds.
|
static String |
normalize(String self)
Deprecated.
Use the CharSequence version
|
static String |
padLeft(CharSequence self,
Number numberOfChars)
Pad a CharSequence to a minimum length specified by numberOfChars by adding the space character
to the left as many times as needed.
|
static String |
padLeft(CharSequence self,
Number numberOfChars,
CharSequence padding)
Pad a CharSequence to a minimum length specified by numberOfChars, adding the supplied
padding CharSequence as many times as needed to the left.
|
static String |
padLeft(String self,
Number numberOfChars)
Deprecated.
Use the CharSequence version
|
static String |
padLeft(String self,
Number numberOfChars,
String padding)
Deprecated.
Use the CharSequence version
|
static String |
padRight(CharSequence self,
Number numberOfChars)
Pad a CharSequence to a minimum length specified by numberOfChars by adding the space
character to the right as many times as needed.
|
static String |
padRight(CharSequence self,
Number numberOfChars,
CharSequence padding)
Pad a CharSequence to a minimum length specified by numberOfChars, adding the supplied padding
CharSequence as many times as needed to the right.
|
static String |
padRight(String self,
Number numberOfChars)
Deprecated.
Use the CharSequence version
|
static String |
padRight(String self,
Number numberOfChars,
String padding)
Deprecated.
Use the CharSequence version
|
static String |
plus(CharSequence left,
Object value)
Appends the String representation of the given operand to this CharSequence.
|
static String |
plus(Number value,
String right)
Appends a String to the string representation of this number.
|
static String |
plus(StringBuffer left,
String value)
Appends a String to this StringBuffer.
|
static String |
plus(String left,
CharSequence value)
Appends the String representation of the given operand to this string.
|
static String |
plus(String left,
Object value)
Deprecated.
Use the CharSequence version
|
static String |
previous(CharSequence self)
This method is called by the -- operator for the class CharSequence.
|
static String |
previous(String self)
Deprecated.
Use the CharSequence version
|
static void |
putAt(StringBuffer self,
EmptyRange range,
Object value)
Support the range subscript operator for StringBuffer.
|
static void |
putAt(StringBuffer self,
IntRange range,
Object value)
Support the range subscript operator for StringBuffer.
|
static List<String> |
readLines(CharSequence self)
Return the lines of a CharSequence as a List of String.
|
static List<String> |
readLines(String self)
Deprecated.
Use the CharSequence version
|
static String |
replaceAll(CharSequence self,
CharSequence regex,
CharSequence replacement)
Replaces each substring of this CharSequence that matches the given
regular expression with the given replacement.
|
static String |
replaceAll(CharSequence self,
CharSequence regex,
Closure closure)
Replaces all occurrences of a captured group by the result of a closure on that text.
|
static String |
replaceAll(CharSequence self,
Pattern pattern,
CharSequence replacement)
Replaces all substrings of a CharSequence that match the given
compiled regular expression with the given replacement.
|
static String |
replaceAll(CharSequence self,
Pattern pattern,
Closure closure)
Replaces all occurrences of a captured group by the result of a closure call on that text.
|
static String |
replaceAll(String self,
Pattern pattern,
Closure closure)
Deprecated.
Use the CharSequence version
|
static String |
replaceAll(String self,
Pattern pattern,
String replacement)
Deprecated.
Use the CharSequence version
|
static String |
replaceAll(String self,
String regex,
Closure closure)
Deprecated.
Use the CharSequence version
|
static String |
replaceFirst(CharSequence self,
CharSequence regex,
CharSequence replacement)
Replaces the first substring of this CharSequence that matches the given
regular expression with the given replacement.
|
static String |
replaceFirst(CharSequence self,
CharSequence regex,
Closure closure)
Replaces the first occurrence of a captured group by the result of a closure call on that text.
|
static String |
replaceFirst(CharSequence self,
Pattern pattern,
CharSequence replacement)
Replaces the first substring of a CharSequence that matches the given
compiled regular expression with the given replacement.
|
static String |
replaceFirst(CharSequence self,
Pattern pattern,
Closure closure)
Replaces the first occurrence of a captured group by the result of a closure call on that text.
|
static String |
replaceFirst(String self,
Pattern pattern,
Closure closure)
Deprecated.
Use the CharSequence version
|
static String |
replaceFirst(String self,
Pattern pattern,
String replacement)
Deprecated.
Use the CharSequence version
|
static String |
replaceFirst(String self,
String regex,
Closure closure)
Deprecated.
Use the CharSequence version
|
static String |
reverse(CharSequence self)
Creates a String which is the reverse (backwards) of this CharSequence
|
static String |
reverse(String self)
Deprecated.
Use the CharSequence version
|
static void |
setIndex(Matcher matcher,
int idx)
Set the position of the given Matcher to the given index.
|
static int |
size(CharSequence text)
Provide the standard Groovy
size() method for CharSequence . |
static long |
size(Matcher self)
Provide the standard Groovy
size() method for Matcher . |
static int |
size(String text)
Provide the standard Groovy
size() method for String . |
static int |
size(StringBuffer buffer)
Provide the standard Groovy
size() method for StringBuffer . |
static String[] |
split(CharSequence self)
Convenience method to split a CharSequence (with whitespace as delimiter).
|
static String[] |
split(GString self)
Deprecated.
Use the CharSequence version
|
static String[] |
split(String self)
Deprecated.
Use the CharSequence version
|
static <T> T |
splitEachLine(CharSequence self,
CharSequence regex,
Closure<T> closure)
Iterates through the given CharSequence line by line, splitting each line using
the given regex delimiter.
|
static <T> T |
splitEachLine(CharSequence self,
Pattern pattern,
Closure<T> closure)
Iterates through the given CharSequence line by line, splitting each line using
the given separator Pattern.
|
static <T> T |
splitEachLine(String self,
Pattern pattern,
Closure<T> closure)
Deprecated.
Use the CharSequence version
|
static <T> T |
splitEachLine(String self,
String regex,
Closure<T> closure)
Deprecated.
Use the CharSequence version
|
static String |
stripIndent(CharSequence self)
Strip leading spaces from every line in a CharSequence.
|
static String |
stripIndent(CharSequence self,
int numChars)
Strip numChar leading characters from
every line in a CharSequence.
|
static String |
stripIndent(String self)
Deprecated.
Use the CharSequence version
|
static String |
stripIndent(String self,
int numChars)
Deprecated.
Use the CharSequence version
|
static String |
stripMargin(CharSequence self)
Strip leading whitespace/control characters followed by '|' from
every line in a CharSequence.
|
static String |
stripMargin(CharSequence self,
char marginChar)
Strip leading whitespace/control characters followed by marginChar from
every line in a CharSequence.
|
static String |
stripMargin(CharSequence self,
CharSequence marginChar)
Strip leading whitespace/control characters followed by marginChar from
every line in a CharSequence.
|
static String |
stripMargin(String self)
Deprecated.
Use the CharSequence version
|
static String |
stripMargin(String self,
char marginChar)
Deprecated.
Use the CharSequence version
|
static String |
stripMargin(String self,
String marginChar)
Deprecated.
Use the CharSequence version
|
static CharSequence |
take(CharSequence self,
int num)
Returns the first
num elements from this CharSequence. |
static String |
take(GString self,
int num)
A GString variant of the equivalent CharSequence method.
|
static CharSequence |
takeWhile(CharSequence self,
Closure condition)
Returns the longest prefix of this CharSequence where each
element passed to the given closure evaluates to true.
|
static String |
takeWhile(GString self,
Closure condition)
A GString variant of the equivalent GString method.
|
static BigDecimal |
toBigDecimal(CharSequence self)
Parse a CharSequence into a BigDecimal
|
static BigDecimal |
toBigDecimal(String self)
Deprecated.
Use the CharSequence version
|
static BigInteger |
toBigInteger(CharSequence self)
Parse a CharSequence into a BigInteger
|
static BigInteger |
toBigInteger(String self)
Deprecated.
Use the CharSequence version
|
static Boolean |
toBoolean(String self)
Converts the given string into a Boolean object.
|
static Character |
toCharacter(String self)
Converts the given string into a Character object
using the first character in the string.
|
static Double |
toDouble(CharSequence self)
Parse a CharSequence into a Double
|
static Double |
toDouble(String self)
Deprecated.
Use the CharSequence version
|
static Float |
toFloat(CharSequence self)
Parse a CharSequence into a Float
|
static Float |
toFloat(String self)
Deprecated.
Use the CharSequence version
|
static Integer |
toInteger(CharSequence self)
Parse a CharSequence into an Integer
|
static Integer |
toInteger(String self)
Deprecated.
Use the CharSequence version
|
static List<String> |
tokenize(CharSequence self)
Tokenize a CharSequence (with a whitespace as the delimiter).
|
static List<String> |
tokenize(CharSequence self,
Character token)
Tokenize a CharSequence based on the given character delimiter.
|
static List<String> |
tokenize(CharSequence self,
CharSequence token)
Tokenize a CharSequence based on the given CharSequence delimiter.
|
static List<String> |
tokenize(String self)
Deprecated.
Use the CharSequence version
|
static List<String> |
tokenize(String self,
Character token)
Deprecated.
Use the CharSequence version
|
static List<String> |
tokenize(String self,
String token)
Deprecated.
Use the CharSequence version
|
static List<String> |
toList(CharSequence self)
Converts the given CharSequence into a List of Strings of one character.
|
static List<String> |
toList(String self)
Deprecated.
Use the CharSequence version
|
static Long |
toLong(CharSequence self)
Parse a CharSequence into a Long
|
static Long |
toLong(String self)
Deprecated.
Use the CharSequence version
|
static Set<String> |
toSet(CharSequence self)
Converts the given CharSequence into a Set of unique String of one character.
|
static Set<String> |
toSet(String self)
Deprecated.
Use the CharSequence version
|
static Short |
toShort(CharSequence self)
Parse a CharSequence into a Short
|
static Short |
toShort(String self)
Deprecated.
Use the CharSequence version
|
static String |
tr(CharSequence self,
CharSequence sourceSet,
CharSequence replacementSet)
Translates a CharSequence by replacing characters from the sourceSet with characters from replacementSet.
|
static String |
tr(String self,
String sourceSet,
String replacementSet)
Deprecated.
Use the CharSequence version
|
static String |
unexpand(CharSequence self)
Replaces sequences of whitespaces with tabs using tabStops of size 8.
|
static String |
unexpand(CharSequence self,
int tabStop)
Replaces sequences of whitespaces with tabs.
|
static String |
unexpand(String self)
Deprecated.
Use the CharSequence version
|
static String |
unexpand(String self,
int tabStop)
Deprecated.
Use the CharSequence version
|
static String |
unexpandLine(CharSequence self,
int tabStop)
Replaces sequences of whitespaces with tabs within a line.
|
static String |
unexpandLine(String self,
int tabStop)
Deprecated.
Use the CharSequence version
|
cloneSimilarCollection, cloneSimilarMap, closeQuietly, closeWithWarning, createSimilarArray, createSimilarCollection, createSimilarCollection, createSimilarCollection, createSimilarList, createSimilarMap, createSimilarOrDefaultCollection, createSimilarSet, normaliseIndex, sameType, subListBorders, subListBorders
public static boolean asBoolean(CharSequence string)
string
- the character sequencepublic static boolean asBoolean(Matcher matcher)
matcher
- the matcherpublic static <T> T asType(CharSequence self, Class<T> c)
Provides a method to perform custom 'dynamic' type conversion
to the given class using the as
operator.
self
- a CharSequencec
- the desired classasType(String, Class)
public static <T> T asType(GString self, Class<T> c)
DefaultGroovyMethods.asType(Object, Class)
self
- a GStringc
- the desired classpublic static <T> T asType(String self, Class<T> c)
as
operator.
Example: '123' as Double
By default, the following types are supported:
DefaultGroovyMethods.asType(Object, Class)
.self
- a Stringc
- the desired classpublic static Pattern bitwiseNegate(CharSequence self)
self
- a String to convert into a regular expression@Deprecated public static Pattern bitwiseNegate(String self)
bitwiseNegate(CharSequence)
public static String capitalize(CharSequence self)
assert 'h'.capitalize() == 'H' assert 'hello'.capitalize() == 'Hello' assert 'hello world'.capitalize() == 'Hello world' assert 'Hello World' == 'hello world'.split(' ').collect{ it.capitalize() }.join(' ')
self
- The CharSequence to capitalizecapitalize(String)
@Deprecated public static String capitalize(String self)
capitalize(CharSequence)
public static String center(CharSequence self, Number numberOfChars)
['A', 'BB', 'CCC', 'DDDD'].each{ println '|' + it.center(6) + '|' }will produce output like:
| A | | BB | | CCC | | DDDD |
self
- a CharSequence objectnumberOfChars
- the total minimum number of characters of the resultcenter(String, Number)
public static String center(CharSequence self, Number numberOfChars, CharSequence padding)
['A', 'BB', 'CCC', 'DDDD'].each{ println '|' + it.center(6, '+') + '|' }will produce output like:
|++A+++| |++BB++| |+CCC++| |+DDDD+|
self
- a CharSequence objectnumberOfChars
- the total minimum number of characters of the resulting CharSequencepadding
- the characters used for paddingcenter(String, Number, String)
@Deprecated public static String center(String self, Number numberOfChars)
center(CharSequence, Number)
@Deprecated public static String center(String self, Number numberOfChars, String padding)
public static boolean contains(CharSequence self, CharSequence text)
Collection.contains(Object)
to make CharSequences more polymorphic.self
- a CharSequencetext
- the CharSequence to look forcontains(String, String)
@Deprecated public static boolean contains(String self, String text)
contains(CharSequence, CharSequence)
public static int count(CharSequence self, CharSequence text)
self
- a CharSequencetext
- a sub CharSequencecount(String, String)
@Deprecated public static int count(String self, String text)
contains(CharSequence, CharSequence)
public static String denormalize(CharSequence self)
self
- a CharSequence objectdenormalize(String)
@Deprecated public static String denormalize(String self)
denormalize(CharSequence)
public static CharSequence drop(CharSequence self, int num)
def text = "Groovy" assert text.drop( 0 ) == 'Groovy' assert text.drop( 2 ) == 'oovy' assert text.drop( 7 ) == ''
self
- the original CharSequencenum
- the number of characters to drop from this iteratornum
ones,
or else an empty String, if this CharSequence has less than num
characters.public static String drop(GString self, int num)
self
- the original GStringnum
- the number of characters to drop from this iteratornum
ones,
or else an empty String, if the toString() of this GString has less than num
characters.drop(CharSequence, int)
public static CharSequence dropWhile(CharSequence self, Closure condition)
def text = "Groovy" assert text.dropWhile{ false } == 'Groovy' assert text.dropWhile{ true } == '' assert text.dropWhile{ it < 'Z' } == 'roovy' assert text.dropWhile{ it != 'v' } == 'vy'
self
- the original CharSequencecondition
- the closure that while continuously evaluating to true will cause us to drop elements from
the front of the original CharSequencepublic static String dropWhile(GString self, Closure condition)
self
- the original GStringcondition
- the closure that while continuously evaluating to true will cause us to drop elements from
the front of the original GStringdropWhile(CharSequence, groovy.lang.Closure)
public static <T> T eachLine(CharSequence self, Closure<T> closure) throws IOException
self
- a CharSequenceclosure
- a closureIOException
- if an error occurseachLine(String, groovy.lang.Closure)
public static <T> T eachLine(CharSequence self, int firstLine, Closure<T> closure) throws IOException
self
- a CharSequencefirstLine
- the line number value used for the first line (default is 1, set to 0 to start counting from 0)closure
- a closure (arg 1 is line, optional arg 2 is line number)IOException
- if an error occurseachLine(String, int, groovy.lang.Closure)
@Deprecated public static <T> T eachLine(String self, Closure<T> closure) throws IOException
IOException
eachLine(CharSequence, groovy.lang.Closure)
@Deprecated public static <T> T eachLine(String self, int firstLine, Closure<T> closure) throws IOException
IOException
eachLine(CharSequence, int, groovy.lang.Closure)
public static String collectReplacements(String orig, Closure<String> transform)
transform
Closure should return null
to indicate that no transformation is
required for the given character.
assert "Groovy".collectReplacements{ it == 'o' ? '_O_' : null } == 'Gr_O__O_vy' assert "B&W".collectReplacements{ it == '&' ? '&' : null } == 'B&W'
orig
- the original Stringtransform
Closure.public static <T extends CharSequence> T eachMatch(T self, CharSequence regex, Closure closure)
self
- the source CharSequenceregex
- a Regex CharSequenceclosure
- a closure with one parameter or as much parameters as groupseachMatch(String, String, groovy.lang.Closure)
public static <T extends CharSequence> T eachMatch(T self, Pattern pattern, Closure closure)
self
- the source CharSequencepattern
- a regex Patternclosure
- a closure with one parameter or as much parameters as groupseachMatch(String, java.util.regex.Pattern, groovy.lang.Closure)
public static String eachMatch(String self, Pattern pattern, Closure closure)
self
- the source stringpattern
- a regex Patternclosure
- a closure with one parameter or as much parameters as groupspublic static String eachMatch(String self, String regex, Closure closure)
self
- the source stringregex
- a Regex stringclosure
- a closure with one parameter or as much parameters as groupspublic static String expand(CharSequence self)
self
- A CharSequence to expandexpand(String)
public static String expand(CharSequence self, int tabStop)
self
- A CharSequence to expandtabStop
- The number of spaces a tab representsexpand(String, int)
@Deprecated public static String expand(String self)
expand(CharSequence)
@Deprecated public static String expand(String self, int tabStop)
expand(CharSequence, int)
public static String expandLine(CharSequence self, int tabStop)
self
- A line to expandtabStop
- The number of spaces a tab representsexpandLine(String, int)
@Deprecated public static String expandLine(String self, int tabStop)
expand(CharSequence, int)
public static String find(CharSequence self, CharSequence regex)
For example, if the regex doesn't match the result is null:
assert null == "New York, NY".find(/\d{5}/)If it does match, we get the matching string back:
assert "10292" == "New York, NY 10292-0098".find(/\d{5}/)If we have capture groups in our expression, we still get back the full match
assert "10292-0098" == "New York, NY 10292-0098".find(/(\d{5})-?(\d{4})/)
self
- a CharSequenceregex
- the capturing regexfind(String, java.util.regex.Pattern)
public static String find(CharSequence self, CharSequence regex, Closure closure)
self
- a CharSequenceregex
- the capturing regex CharSequenceclosure
- the closure that will be passed the full match, plus each of the capturing groups (if any)find(String, java.util.regex.Pattern, groovy.lang.Closure)
public static String find(CharSequence self, Pattern pattern)
For example, if the pattern doesn't match the result is null:
assert null == "New York, NY".find(~/\d{5}/)If it does match, we get the matching string back:
assert "10292" == "New York, NY 10292-0098".find(~/\d{5}/)If we have capture groups in our expression, the groups are ignored and we get back the full match:
assert "10292-0098" == "New York, NY 10292-0098".find(~/(\d{5})-?(\d{4})/)If you need to work with capture groups, then use the closure version of this method or use Groovy's matcher operators or use eachMatch.
self
- a CharSequencepattern
- the compiled regex Patternfind(String, java.util.regex.Pattern)
public static String find(CharSequence self, Pattern pattern, Closure closure)
For example, if the pattern doesn't match, the result is null:
assert null == "New York, NY".find(~/\d{5}/) { match -> return "-$match-"}If it does match and we don't have any capture groups in our regex, there is a single parameter on the closure that the match gets passed to:
assert "-10292-" == "New York, NY 10292-0098".find(~/\d{5}/) { match -> return "-$match-"}If we have capture groups in our expression, our closure has one parameter for the match, followed by one for each of the capture groups:
assert "10292" == "New York, NY 10292-0098".find(~/(\d{5})-?(\d{4})/) { match, zip, plusFour -> assert match == "10292-0098" assert zip == "10292" assert plusFour == "0098" return zip }If we have capture groups in our expression, and our closure has one parameter, the closure will be passed an array with the first element corresponding to the whole match, followed by an element for each of the capture groups:
assert "10292" == "New York, NY 10292-0098".find(~/(\d{5})-?(\d{4})/) { match, zip, plusFour -> assert array[0] == "10292-0098" assert array[1] == "10292" assert array[2] == "0098" return array[1] }If a capture group is optional, and doesn't match, then the corresponding value for that capture group passed to the closure will be null as illustrated here:
assert "2339999" == "adsf 233-9999 adsf".find(~/(\d{3})?-?(\d{3})-(\d{4})/) { match, areaCode, exchange, stationNumber -> assert "233-9999" == match assert null == areaCode assert "233" == exchange assert "9999" == stationNumber return "$exchange$stationNumber" }
self
- a CharSequencepattern
- the compiled regex Patternclosure
- the closure that will be passed the full match, plus each of the capturing groups (if any)find(String, java.util.regex.Pattern, groovy.lang.Closure)
@Deprecated public static String find(String self, Pattern pattern)
@Deprecated public static String find(String self, Pattern pattern, Closure closure)
@Deprecated public static String find(String self, String regex)
find(CharSequence, CharSequence)
@Deprecated public static String find(String self, String regex, Closure closure)
public static List<String> findAll(CharSequence self, CharSequence regex)
For example, if the regex doesn't match, it returns an empty list:
assert [] == "foo".findAll(/(\w*) Fish/)Any regular expression matches are returned in a list, and all regex capture groupings are ignored, only the full match is returned:
def expected = ["One Fish", "Two Fish", "Red Fish", "Blue Fish"] assert expected == "One Fish, Two Fish, Red Fish, Blue Fish".findAll(/(\w*) Fish/)If you need to work with capture groups, then use the closure version of this method or use Groovy's matcher operators or use eachMatch.
self
- a CharSequenceregex
- the capturing regex CharSequencefindAll(CharSequence, Pattern)
public static <T> List<T> findAll(CharSequence self, CharSequence regex, Closure<T> closure)
If there are no matches, the closure will not be called, and an empty List will be returned.
For example, if the regex doesn't match, it returns an empty list:
assert [] == "foo".findAll(/(\w*) Fish/) { match, firstWord -> return firstWord }Any regular expression matches are passed to the closure, if there are no capture groups, there will be one parameter for the match:
assert ["couldn't", "wouldn't"] == "I could not, would not, with a fox.".findAll(/.ould/) { match -> "${match}n't"}If there are capture groups, the first parameter will be the match followed by one parameter for each capture group:
def orig = "There's a Wocket in my Pocket" assert ["W > Wocket", "P > Pocket"] == orig.findAll(/(.)ocket/) { match, firstLetter -> "$firstLetter > $match" }
self
- a CharSequenceregex
- the capturing regex CharSequenceclosure
- will be passed the full match plus each of the capturing groups (if any)findAll(CharSequence, Pattern, groovy.lang.Closure)
public static List<String> findAll(CharSequence self, Pattern pattern)
For example, if the pattern doesn't match, it returns an empty list:
assert [] == "foo".findAll(~/(\w*) Fish/)Any regular expression matches are returned in a list, and all regex capture groupings are ignored, only the full match is returned:
def expected = ["One Fish", "Two Fish", "Red Fish", "Blue Fish"] assert expected == "One Fish, Two Fish, Red Fish, Blue Fish".findAll(~/(\w*) Fish/)
self
- a CharSequencepattern
- the compiled regex PatternfindAll(String, java.util.regex.Pattern)
public static <T> List<T> findAll(CharSequence self, Pattern pattern, Closure<T> closure)
If there are no matches, the closure will not be called, and an empty List will be returned.
For example, if the pattern doesn't match, it returns an empty list:
assert [] == "foo".findAll(~/(\w*) Fish/) { match, firstWord -> return firstWord }Any regular expression matches are passed to the closure, if there are no capture groups, there will be one parameter for the match:
assert ["couldn't", "wouldn't"] == "I could not, would not, with a fox.".findAll(~/.ould/) { match -> "${match}n't"}If there are capture groups, the first parameter will be the match followed by one parameter for each capture group:
def orig = "There's a Wocket in my Pocket" assert ["W > Wocket", "P > Pocket"] == orig.findAll(~/(.)ocket/) { match, firstLetter -> "$firstLetter > $match" }
self
- a CharSequencepattern
- the compiled regex Patternclosure
- will be passed the full match plus each of the capturing groups (if any)findAll(String, java.util.regex.Pattern, groovy.lang.Closure)
@Deprecated public static List<String> findAll(String self, Pattern pattern)
@Deprecated public static <T> List<T> findAll(String self, Pattern pattern, Closure<T> closure)
@Deprecated public static List<String> findAll(String self, String regex)
findAll(CharSequence, CharSequence)
@Deprecated public static <T> List<T> findAll(String self, String regex, Closure<T> closure)
public static String getAt(CharSequence self, Collection indices)
self
- a CharSequenceindices
- a Collection of indicespublic static String getAt(CharSequence text, EmptyRange range)
text
- a CharSequencerange
- an EmptyRangepublic static CharSequence getAt(CharSequence text, int index)
text
- a CharSequenceindex
- the index of the Character to getpublic static String getAt(GString text, int index)
text
- a GStringindex
- the index of the Character to getpublic static CharSequence getAt(CharSequence text, IntRange range)
text
- a CharSequencerange
- an IntRangepublic static String getAt(GString text, IntRange range)
text
- a GStringrange
- an IntRangepublic static CharSequence getAt(CharSequence text, Range range)
text
- a CharSequencerange
- a Rangepublic static String getAt(GString text, Range range)
text
- a GStringrange
- a Rangepublic static List getAt(Matcher self, Collection indices)
self
- a Matcherindices
- a Collection of indicespublic static Object getAt(Matcher matcher, int idx)
For an example using no group match,
def p = /ab[d|f]/ def m = "abcabdabeabf" =~ p assert 2 == m.count assert 2 == m.size() // synonym for m.getCount() assert ! m.hasGroup() assert 0 == m.groupCount() def matches = ["abd", "abf"] for (i in 0..<m.count) { assert m[i] == matches[i] }
For an example using group matches,
def p = /(?:ab([c|d|e|f]))/ def m = "abcabdabeabf" =~ p assert 4 == m.count assert m.hasGroup() assert 1 == m.groupCount() def matches = [["abc", "c"], ["abd", "d"], ["abe", "e"], ["abf", "f"]] for (i in 0..<m.count) { assert m[i] == matches[i] }
For another example using group matches,
def m = "abcabdabeabfabxyzabx" =~ /(?:ab([d|x-z]+))/ assert 3 == m.count assert m.hasGroup() assert 1 == m.groupCount() def matches = [["abd", "d"], ["abxyz", "xyz"], ["abx", "x"]] for (i in 0..<m.count) { assert m[i] == matches[i] }
matcher
- a Matcheridx
- an indexpublic static boolean matchesPartially(Matcher matcher)
def emailPattern = /\w+@\w+\.\w{2,}/ def matcher = "john@doe" =~ emailPattern assert matcher.matchesPartially() matcher = "john@doe.com" =~ emailPattern assert matcher.matchesPartially() matcher = "john@@" =~ emailPattern assert !matcher.matchesPartially()
matcher
- the Matcher@Deprecated public static String getAt(String self, Collection indices)
@Deprecated public static String getAt(String text, EmptyRange range)
public static String getAt(String text, int index)
text
- a Stringindex
- the index of the Character to getpublic static String getAt(String text, IntRange range)
text
- a Stringrange
- an IntRangepublic static String getAt(String text, Range range)
text
- a Stringrange
- a Rangepublic static char[] getChars(CharSequence self)
self
- a CharSequencegetChars(String)
@Deprecated public static char[] getChars(String self)
getChars(CharSequence)
public static int getCount(Matcher matcher)
matcher
- a Matcherpublic static boolean hasGroup(Matcher matcher)
matcher
- a Matchertrue
if matcher contains at least one group.public static boolean isAllWhitespace(CharSequence self)
self
- The CharSequence to check the characters inisAllWhitespace(String)
@Deprecated public static boolean isAllWhitespace(String self)
isAllWhitespace(CharSequence)
public static boolean isBigDecimal(CharSequence self)
self
- a CharSequenceisBigDecimal(String)
@Deprecated public static boolean isBigDecimal(String self)
isBigDecimal(CharSequence)
public static boolean isBigInteger(CharSequence self)
self
- a CharSequenceisBigInteger(String)
@Deprecated public static boolean isBigInteger(String self)
isBigInteger(CharSequence)
public static boolean isCase(CharSequence caseValue, Object switchValue)
switch( str ) { case 'one' : // etc... }Note that this returns
true
for the case where both the
'switch' and 'case' operand is null
.caseValue
- the case valueswitchValue
- the switch value@Deprecated public static boolean isCase(GString caseValue, Object switchValue)
isCase(CharSequence, Object)
public static boolean isCase(Pattern caseValue, Object switchValue)
Pattern
class, which allows
testing a String against a number of regular expressions.
For example:
switch( str ) { case ~/one/ : // the regex 'one' matches the value of str }Note that this returns true for the case where both the pattern and the 'switch' values are
null
.caseValue
- the case valueswitchValue
- the switch value@Deprecated public static boolean isCase(String caseValue, Object switchValue)
isCase(CharSequence, Object)
public static boolean isDouble(CharSequence self)
self
- a CharSequenceisDouble(String)
@Deprecated public static boolean isDouble(String self)
isDouble(CharSequence)
public static boolean isFloat(CharSequence self)
self
- a CharSequenceisFloat(String)
@Deprecated public static boolean isFloat(String self)
isFloat(CharSequence)
public static boolean isInteger(CharSequence self)
self
- a CharSequenceisInteger(String)
@Deprecated public static boolean isInteger(String self)
isInteger(CharSequence)
public static boolean isLong(CharSequence self)
self
- a CharSequenceisLong(String)
@Deprecated public static boolean isLong(String self)
isLong(CharSequence)
public static boolean isNumber(CharSequence self)
self
- a CharSequenceisBigDecimal(CharSequence)
@Deprecated public static boolean isNumber(String self)
isNumber(CharSequence)
public static Iterator iterator(Matcher matcher)
Iterator
which traverses each match.matcher
- a Matcher objectMatcher.group()
public static StringBuilder leftShift(CharSequence self, Object value)
self
- a CharSequencevalue
- an Objectpublic static StringBuffer leftShift(String self, Object value)
self
- a Stringvalue
- an Objectpublic static StringBuffer leftShift(StringBuffer self, Object value)
self
- a StringBuffervalue
- a value to appendpublic static StringBuilder leftShift(StringBuilder self, Object value)
self
- a StringBuildervalue
- an Objectpublic static boolean matches(CharSequence self, Pattern pattern)
self
- the CharSequence that is to be matchedpattern
- the regex Pattern to which the string of interest is to be matchedString.matches(String)
@Deprecated public static boolean matches(String self, Pattern pattern)
matches(CharSequence, Pattern)
public static String minus(CharSequence self, Object target)
self
- a CharSequencetarget
- an object representing the part to removeminus(String, Object)
public static String minus(CharSequence self, Pattern pattern)
self
- a Stringpattern
- a Pattern representing the part to remove@Deprecated public static String minus(String self, Pattern pattern)
@Deprecated public static String minus(String self, Object target)
minus(CharSequence, Object)
public static String multiply(CharSequence self, Number factor)
self
- a CharSequence to be repeatedfactor
- the number of times the CharSequence should be repeatedIllegalArgumentException
- if the number of repetitions is < 0@Deprecated public static String multiply(String self, Number factor)
multiply(CharSequence, Number)
public static String next(CharSequence self)
self
- a CharSequence@Deprecated public static String next(String self)
next(CharSequence)
public static String normalize(CharSequence self)
self
- a CharSequence objectnormalize(String)
@Deprecated public static String normalize(String self)
normalize(CharSequence)
public static String padLeft(CharSequence self, Number numberOfChars)
println 'Numbers:' [1, 10, 100, 1000].each{ println it.toString().padLeft(5) }will produce output like:
Numbers: 1 10 100 1000
self
- a CharSequence objectnumberOfChars
- the total minimum number of characters of the resulting CharSequencepadLeft(CharSequence, Number, CharSequence)
public static String padLeft(CharSequence self, Number numberOfChars, CharSequence padding)
println 'Numbers:' [1, 10, 100, 1000].each{ println it.toString().padLeft(5, '*') } [2, 20, 200, 2000].each{ println it.toString().padLeft(5, '*_') }will produce output like:
Numbers: ****1 ***10 **100 *1000 *_*_2 *_*20 *_200 *2000
self
- a CharSequence objectnumberOfChars
- the total minimum number of characters of the resulting CharSequencepadding
- the characters used for paddingpadLeft(String, Number, String)
@Deprecated public static String padLeft(String self, Number numberOfChars)
padLeft(CharSequence, Number)
@Deprecated public static String padLeft(String self, Number numberOfChars, String padding)
public static String padRight(CharSequence self, Number numberOfChars)
['A', 'BB', 'CCC', 'DDDD'].each{ println it.padRight(5) + it.size() }will produce output like:
A 1 BB 2 CCC 3 DDDD 4
self
- a CharSequence objectnumberOfChars
- the total minimum number of characters of the resulting stringpadRight(String, Number)
public static String padRight(CharSequence self, Number numberOfChars, CharSequence padding)
['A', 'BB', 'CCC', 'DDDD'].each{ println it.padRight(5, '#') + it.size() }will produce output like:
A####1 BB###2 CCC##3 DDDD#4
self
- a CharSequence objectnumberOfChars
- the total minimum number of characters of the resulting CharSequencepadding
- the characters used for padding@Deprecated public static String padRight(String self, Number numberOfChars)
padRight(CharSequence, Number)
@Deprecated public static String padRight(String self, Number numberOfChars, String padding)
public static String plus(CharSequence left, Object value)
left
- a CharSequencevalue
- any Objectpublic static String plus(Number value, String right)
value
- a Numberright
- a String@Deprecated public static String plus(String left, Object value)
plus(CharSequence, Object)
public static String plus(String left, CharSequence value)
left
- a Stringvalue
- any CharSequencepublic static String plus(StringBuffer left, String value)
left
- a StringBuffervalue
- a Stringpublic static String previous(CharSequence self)
self
- a CharSequenceprevious(String)
@Deprecated public static String previous(String self)
previous(CharSequence)
public static void putAt(StringBuffer self, EmptyRange range, Object value)
self
- a StringBufferrange
- a Rangevalue
- the object that's toString() will be insertedpublic static void putAt(StringBuffer self, IntRange range, Object value)
self
- a StringBufferrange
- a Rangevalue
- the object that's toString() will be insertedpublic static List<String> readLines(CharSequence self) throws IOException
self
- a CharSequence objectIOException
- if an error occurs@Deprecated public static List<String> readLines(String self) throws IOException
IOException
readLines(CharSequence)
public static String replaceAll(CharSequence self, CharSequence regex, CharSequence replacement)
self
- a CharSequenceregex
- the capturing regexreplacement
- the string to be substituted for each matchPatternSyntaxException
- if the regular expression's syntax is invalidString.replaceAll(String, String)
public static String replaceAll(CharSequence self, CharSequence regex, Closure closure)
For examples,
assert "hellO wOrld" == "hello world".replaceAll("(o)") { it[0].toUpperCase() } assert "FOOBAR-FOOBAR-" == "foobar-FooBar-".replaceAll("(([fF][oO]{2})[bB]ar)", { Object[] it -> it[0].toUpperCase() }) Here, it[0] is the global string of the matched group it[1] is the first string in the matched group it[2] is the second string in the matched group assert "FOO-FOO-" == "foobar-FooBar-".replaceAll("(([fF][oO]{2})[bB]ar)", { x, y, z -> z.toUpperCase() }) Here, x is the global string of the matched group y is the first string in the matched group z is the second string in the matched groupNote that unlike String.replaceAll(String regex, String replacement), where the replacement string treats '$' and '\' specially (for group substitution), the result of the closure is converted to a string and that value is used literally for the replacement.
self
- a CharSequenceregex
- the capturing regexclosure
- the closure to apply on each captured groupPatternSyntaxException
- if the regular expression's syntax is invalidreplaceAll(String, java.util.regex.Pattern, groovy.lang.Closure)
public static String replaceAll(CharSequence self, Pattern pattern, CharSequence replacement)
Note that backslashes (\) and dollar signs ($) in the
replacement string may cause the results to be different than if it were
being treated as a literal replacement string; see
Matcher.replaceAll(java.lang.String)
.
Use Matcher.quoteReplacement(java.lang.String)
to suppress the special
meaning of these characters, if desired.
assert "foo".replaceAll('o', 'X') == 'fXX'
self
- the CharSequence that is to be matchedpattern
- the regex Pattern to which the CharSequence of interest is to be matchedreplacement
- the CharSequence to be substituted for the first matchreplaceAll(String, java.util.regex.Pattern, String)
public static String replaceAll(CharSequence self, Pattern pattern, Closure closure)
For examples,
assert "hellO wOrld" == "hello world".replaceAll(~"(o)") { it[0].toUpperCase() } assert "FOOBAR-FOOBAR-" == "foobar-FooBar-".replaceAll(~"(([fF][oO]{2})[bB]ar)", { it[0].toUpperCase() }) Here, it[0] is the global string of the matched group it[1] is the first string in the matched group it[2] is the second string in the matched group assert "FOOBAR-FOOBAR-" == "foobar-FooBar-".replaceAll(~"(([fF][oO]{2})[bB]ar)", { Object[] it -> it[0].toUpperCase() }) Here, it[0] is the global string of the matched group it[1] is the first string in the matched group it[2] is the second string in the matched group assert "FOO-FOO-" == "foobar-FooBar-".replaceAll("(([fF][oO]{2})[bB]ar)", { x, y, z -> z.toUpperCase() }) Here, x is the global string of the matched group y is the first string in the matched group z is the second string in the matched groupNote that unlike String.replaceAll(String regex, String replacement), where the replacement string treats '$' and '\' specially (for group substitution), the result of the closure is converted to a string and that value is used literally for the replacement.
self
- a CharSequencepattern
- the capturing regex Patternclosure
- the closure to apply on each captured groupMatcher.quoteReplacement(String)
@Deprecated public static String replaceAll(String self, Pattern pattern, Closure closure)
@Deprecated public static String replaceAll(String self, Pattern pattern, String replacement)
@Deprecated public static String replaceAll(String self, String regex, Closure closure)
public static String replaceFirst(CharSequence self, CharSequence regex, CharSequence replacement)
self
- a CharSequenceregex
- the capturing regexreplacement
- the CharSequence to be substituted for each matchPatternSyntaxException
- if the regular expression's syntax is invalidString.replaceFirst(String, String)
public static String replaceFirst(CharSequence self, CharSequence regex, Closure closure)
For example (with some replaceAll variants thrown in for comparison purposes),
assert "hellO world" == "hello world".replaceFirst("(o)") { it[0].toUpperCase() } // first match assert "hellO wOrld" == "hello world".replaceAll("(o)") { it[0].toUpperCase() } // all matches assert '1-FISH, two fish' == "one fish, two fish".replaceFirst(/([a-z]{3})\s([a-z]{4})/) { [one:1, two:2][it[1]] + '-' + it[2].toUpperCase() } assert '1-FISH, 2-FISH' == "one fish, two fish".replaceAll(/([a-z]{3})\s([a-z]{4})/) { [one:1, two:2][it[1]] + '-' + it[2].toUpperCase() }
self
- a CharSequenceregex
- the capturing regexclosure
- the closure to apply on the first captured groupPatternSyntaxException
- if the regular expression's syntax is invalidreplaceFirst(String, String, groovy.lang.Closure)
public static String replaceFirst(CharSequence self, Pattern pattern, CharSequence replacement)
Note that backslashes (\) and dollar signs ($) in the
replacement string may cause the results to be different than if it were
being treated as a literal replacement string; see
Matcher.replaceFirst(java.lang.String)
.
Use Matcher.quoteReplacement(java.lang.String)
to suppress the special
meaning of these characters, if desired.
assert "foo".replaceFirst('o', 'X') == 'fXo'
self
- the CharSequence that is to be matchedpattern
- the regex Pattern to which the CharSequence of interest is to be matchedreplacement
- the CharSequence to be substituted for the first matchreplaceFirst(String, java.util.regex.Pattern, String)
public static String replaceFirst(CharSequence self, Pattern pattern, Closure closure)
For example (with some replaceAll variants thrown in for comparison purposes),
assert "hellO world" == "hello world".replaceFirst(~"(o)") { it[0].toUpperCase() } // first match assert "hellO wOrld" == "hello world".replaceAll(~"(o)") { it[0].toUpperCase() } // all matches assert '1-FISH, two fish' == "one fish, two fish".replaceFirst(~/([a-z]{3})\s([a-z]{4})/) { [one:1, two:2][it[1]] + '-' + it[2].toUpperCase() } assert '1-FISH, 2-FISH' == "one fish, two fish".replaceAll(~/([a-z]{3})\s([a-z]{4})/) { [one:1, two:2][it[1]] + '-' + it[2].toUpperCase() }
self
- a CharSequencepattern
- the capturing regex Patternclosure
- the closure to apply on the first captured group@Deprecated public static String replaceFirst(String self, Pattern pattern, Closure closure)
@Deprecated public static String replaceFirst(String self, Pattern pattern, String replacement)
@Deprecated public static String replaceFirst(String self, String regex, Closure closure)
public static String reverse(CharSequence self)
self
- a CharSequencereverse(String)
@Deprecated public static String reverse(String self)
reverse(CharSequence)
public static void setIndex(Matcher matcher, int idx)
matcher
- a Matcheridx
- the index numberpublic static int size(CharSequence text)
size()
method for CharSequence
.text
- a CharSequencepublic static long size(Matcher self)
size()
method for Matcher
.self
- a matcher objectpublic static int size(String text)
size()
method for String
.text
- a Stringpublic static int size(StringBuffer buffer)
size()
method for StringBuffer
.buffer
- a StringBufferpublic static String[] split(CharSequence self)
self
- the CharSequence to splitsplit(String)
@Deprecated public static String[] split(GString self)
split(CharSequence)
@Deprecated public static String[] split(String self)
split(CharSequence)
public static <T> T splitEachLine(CharSequence self, CharSequence regex, Closure<T> closure) throws IOException
self
- a CharSequenceregex
- the delimiting regular expressionclosure
- a closureIOException
- if an error occursPatternSyntaxException
- if the regular expression's syntax is invalidsplitEachLine(CharSequence, java.util.regex.Pattern, groovy.lang.Closure)
public static <T> T splitEachLine(CharSequence self, Pattern pattern, Closure<T> closure) throws IOException
self
- a CharSequencepattern
- the regular expression Pattern for the delimiterclosure
- a closureIOException
- if an error occurs@Deprecated public static <T> T splitEachLine(String self, Pattern pattern, Closure<T> closure) throws IOException
@Deprecated public static <T> T splitEachLine(String self, String regex, Closure<T> closure) throws IOException
public static String stripIndent(CharSequence self)
assert ' A\n B\nC' == ' A\n B\n C'.stripIndent()
self
- The CharSequence to strip the leading spaces fromstripIndent(String)
public static String stripIndent(CharSequence self, int numChars)
assert 'DEF\n456' == '''ABCDEF\n123456'''.stripIndent(3)
self
- The CharSequence to strip the characters fromnumChars
- The number of characters to strip@Deprecated public static String stripIndent(String self)
stripIndent(CharSequence)
@Deprecated public static String stripIndent(String self, int numChars)
stripIndent(CharSequence)
public static String stripMargin(CharSequence self)
assert 'ABC\n123\n456' == '''ABC |123 |456'''.stripMargin()
self
- The CharSequence to strip the margin fromstripMargin(CharSequence, char)
public static String stripMargin(CharSequence self, char marginChar)
assert 'ABC\n123\n456' == '''ABC *123 *456'''.stripMargin('*')
self
- The CharSequence to strip the margin frommarginChar
- Any character that serves as margin delimiterstripMargin(String, char)
public static String stripMargin(CharSequence self, CharSequence marginChar)
self
- The CharSequence to strip the margin frommarginChar
- Any character that serves as margin delimiterstripMargin(String, String)
@Deprecated public static String stripMargin(String self)
stripMargin(CharSequence)
@Deprecated public static String stripMargin(String self, char marginChar)
stripMargin(CharSequence, char)
@Deprecated public static String stripMargin(String self, String marginChar)
stripMargin(CharSequence, char)
public static CharSequence take(CharSequence self, int num)
num
elements from this CharSequence.
def text = "Groovy" assert text.take( 0 ) == '' assert text.take( 2 ) == 'Gr' assert text.take( 7 ) == 'Groovy'
self
- the original CharSequencenum
- the number of chars to take from this CharSequencenum
chars,
or else the whole CharSequence if it has less then num
elements.public static String take(GString self, int num)
self
- the original GStringnum
- the number of chars to take from this GStringnum
chars,
or else the whole GString if it has less then num
elements.public static CharSequence takeWhile(CharSequence self, Closure condition)
def text = "Groovy" assert text.takeWhile{ it < 'A' } == '' assert text.takeWhile{ it < 'Z' } == 'G' assert text.takeWhile{ it != 'v' } == 'Groo' assert text.takeWhile{ it < 'z' } == 'Groovy'
self
- the original CharSequencecondition
- the closure that must evaluate to true to continue taking elementspublic static String takeWhile(GString self, Closure condition)
self
- the original GStringcondition
- the closure that must evaluate to true to continue taking elementspublic static BigDecimal toBigDecimal(CharSequence self)
self
- a CharSequencetoBigDecimal(String)
@Deprecated public static BigDecimal toBigDecimal(String self)
toBigDecimal(CharSequence)
public static BigInteger toBigInteger(CharSequence self)
self
- a CharSequencetoBigInteger(String)
@Deprecated public static BigInteger toBigInteger(String self)
toBigInteger(CharSequence)
public static Boolean toBoolean(String self)
self
- a Stringpublic static Character toCharacter(String self)
self
- a Stringpublic static Double toDouble(CharSequence self)
self
- a CharSequencetoDouble(String)
@Deprecated public static Double toDouble(String self)
toDouble(CharSequence)
public static Float toFloat(CharSequence self)
self
- a CharSequencetoFloat(String)
@Deprecated public static Float toFloat(String self)
toFloat(CharSequence)
public static Integer toInteger(CharSequence self)
self
- a CharSequence@Deprecated public static Integer toInteger(String self)
toInteger(CharSequence)
public static List<String> tokenize(CharSequence self)
self
- a CharSequenceStringTokenizer.StringTokenizer(String)
public static List<String> tokenize(CharSequence self, Character token)
char pathSep = ':' assert "/tmp:/usr".tokenize(pathSep) == ["/tmp", "/usr"]
self
- a CharSequencetoken
- the delimiterStringTokenizer.StringTokenizer(String, String)
public static List<String> tokenize(CharSequence self, CharSequence token)
self
- a CharSequencetoken
- the delimiterStringTokenizer.StringTokenizer(String, String)
@Deprecated public static List<String> tokenize(String self)
tokenize(CharSequence)
@Deprecated public static List<String> tokenize(String self, Character token)
tokenize(CharSequence, Character)
@Deprecated public static List<String> tokenize(String self, String token)
tokenize(CharSequence, CharSequence)
public static List<String> toList(CharSequence self)
self
- a CharSequencetoSet(String)
@Deprecated public static List<String> toList(String self)
toList(CharSequence)
public static Long toLong(CharSequence self)
self
- a CharSequencetoLong(String)
@Deprecated public static Long toLong(String self)
toLong(CharSequence)
public static Set<String> toSet(CharSequence self)
self
- a CharSequencetoSet(String)
@Deprecated public static Set<String> toSet(String self)
toSet(CharSequence)
public static Short toShort(CharSequence self)
self
- a CharSequence@Deprecated public static Short toShort(String self)
toShort(CharSequence)
public static String tr(CharSequence self, CharSequence sourceSet, CharSequence replacementSet) throws ClassNotFoundException
Here is an example which converts the vowels in a word from lower to uppercase:
assert 'hello'.tr('aeiou', 'AEIOU') == 'hEllO'A character range using regex-style syntax can also be used, e.g. here is an example which converts a word from lower to uppercase:
assert 'hello'.tr('a-z', 'A-Z') == 'HELLO'Hyphens at the start or end of sourceSet or replacementSet are treated as normal hyphens and are not considered to be part of a range specification. Similarly, a hyphen immediately after an earlier range is treated as a normal hyphen. So, '-x', 'x-' have no ranges while 'a-c-e' has the range 'a-c' plus the '-' character plus the 'e' character.
Unlike the unix tr command, Groovy's tr command supports reverse ranges, e.g.:
assert 'hello'.tr('z-a', 'Z-A') == 'HELLO'If replacementSet is smaller than sourceSet, then the last character from replacementSet is used as the replacement for all remaining source characters as shown here:
assert 'Hello World!'.tr('a-z', 'A') == 'HAAAA WAAAA!'If sourceSet contains repeated characters, the last specified replacement is used as shown here:
assert 'Hello World!'.tr('lloo', '1234') == 'He224 W4r2d!'The functionality provided by tr can be achieved using regular expressions but tr provides a much more compact notation and efficient implementation for certain scenarios.
self
- the CharSequence that is to be translatedsourceSet
- the set of characters to translate fromreplacementSet
- the set of replacement charactersClassNotFoundException
StringUtil.tr(String, String, String)
@Deprecated public static String tr(String self, String sourceSet, String replacementSet) throws ClassNotFoundException
ClassNotFoundException
tr(CharSequence, CharSequence, CharSequence)
public static String unexpand(CharSequence self)
self
- A CharSequence to unexpandunexpand(String)
public static String unexpand(CharSequence self, int tabStop)
self
- A CharSequence to unexpandtabStop
- The number of spaces a tab represents@Deprecated public static String unexpand(String self)
unexpand(CharSequence)
@Deprecated public static String unexpand(String self, int tabStop)
unexpand(CharSequence, int)
public static String unexpandLine(CharSequence self, int tabStop)
self
- A line to unexpandtabStop
- The number of spaces a tab represents@Deprecated public static String unexpandLine(String self, int tabStop)
tokenize(CharSequence)