It's not a secret anymore!
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes SCJP book regex, pattern and matcher question Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "SCJP book regex, pattern and matcher question" Watch "SCJP book regex, pattern and matcher question" New topic

SCJP book regex, pattern and matcher question

subathra sangameswaran

Joined: Nov 19, 2005
Posts: 27
Hi Everyone,
Following is one question from K&B SCJP 5 book.
I don't understand how this e answer is correct.
import java.util.regex.*;
class Regex2 {
public static void main(String[] args) {
Pattern p = Pattern.compile(args[0]);
Matcher m = p.matcher(args[1]);
boolean b = false;
while(b = m.find()) {
System.out.print(m.start() +;
And the command line:
java Regex2 "\d*" ab34ef
What is the result?
A. 234
B. 334
C. 2334
D. 0123456
E. 01234456
F. 12334567
G. Compilation fails.
� 3 E is correct. The \d is looking for digits. The * is a quantifier that looks for 0 to many occurrences of the pattern that precedes it. Because we specified *, the group() method returns empty Strings until consecutive digits are found, so the only time group() returns a value is when it returns 34 when the matcher finds digits starting in position 2. The
start() method returns the starting position of the previous match because, again,we said find 0 to many occurrences.

Once at index 2, group brings 34. How come the rest of the result is arrived. Only until 5 are the index available, and if it prints empty strings again, how come it gets to 56 in the end?
Thanks and regards,
[ February 27, 2006: Message edited by: subathra sangameswaran ]

Ulf Dittmer

Joined: Mar 22, 2005
Posts: 42965
A very similar question was asked just last week.
I agree. Here's the link:
subject: SCJP book regex, pattern and matcher question
jQuery in Action, 3rd edition