posted 6 years ago

"Let's say that we want to create a regex pattern to search for hexadecimal literals. As

a first step, let's solve the problem for one-digit hexadecimal numbers:

0[xX][0-9a-fA-F]"

This is from Kathy Sierra and Bates SCJP book page 492 regarding regex. I don't quite understand why the index goes from 0 to 9, then from 0 to 7 rather than from 0 to 18. And the explanation says that the regex returns position 6 and 11, but I don't see any 11. What am I missing?

a first step, let's solve the problem for one-digit hexadecimal numbers:

0[xX][0-9a-fA-F]"

This is from Kathy Sierra and Bates SCJP book page 492 regarding regex. I don't quite understand why the index goes from 0 to 9, then from 0 to 7 rather than from 0 to 18. And the explanation says that the regex returns position 6 and 11, but I don't see any 11. What am I missing?

posted 6 years ago

Array indices in Java start at zero. So if I have

then x.length is 3, and x has indices 0..2, where x[0] is 2, x[1] is 4, and x[2] is 6.

The index line you show is just a shorthand to show you where you are in the given group of 10.

They just didn't show the top line indicating the tens value.

And it should have lined up like:

then x.length is 3, and x has indices 0..2, where x[0] is 2, x[1] is 4, and x[2] is 6.

The index line you show is just a shorthand to show you where you are in the given group of 10.

They just didn't show the top line indicating the tens value.

And it should have lined up like: