Java: String Regex Methods
In addition the the Pattern
and Matcher
classes,
there is some support for regular expressions in the String
class.
boolean b; String s, s2, t; String regex; String[] sa;
b = |
s.matches(regex) |
True if regex matches the entire string in s. Same as Pattern.matches(regex, s) |
s2 = |
s.replaceAll(regex, t) |
Returns a new string by replacing each substring in s that matches regex with t |
s2 = |
s.replaceFirst(regex, t) |
Replaces first substring in s that is matched by regex with String t |
sa = |
s.split(regex) |
Breaks s into substrings separated
by regex or terminated by the end.
There is a problem with this though. If the string is terminated
by the separation regex, it will return one extra empty string.
If you're separating elements with whitespace ("\\s+"), you
can call trim() on the subject first.
See the example below. |
sa = |
s.split(regex, count) |
Splits the string, but limits applying regex to only count times. |
Example - breaking strings into parts
Input lines often contain many values. An easy way to split a string
into separate parts is to use the String split()
method.
This example splits the line into tokes that are separated by
one or more blanks.
// Example of splitting lines from input file with regular expression.
while ((line = input.readLine()) != null) {
String[] tokens = line.trim().split("\\s+"); // Separated by "whitespace"
int sum = 0;
for (String t : tokens) {
try {
sum += Integer.parseInt(t);
} catch (NumberFormatException ex) {
System.out.println("Not an integer: " + t);
System.out.println(ex);
}
}
System.out.println("sum = " + sum);
}