The answers given in the book are correct: A and C will print the required
avaJ.
The explanation why B is wrong, is wrong itself

If you would print the
String returned by option B
Java is indeed printed and not
avaJ. Therefore it's definitely an incorrect answer (as mentioned in the book). But with the code as-is it's also not a nice distraction as the book suggests. To be a nice distraction option B should be replaced with
With this statement the explanation why B is wrong, would be correct.
And what about the last part of the eplanation of this question:
and length() counts starting with 1?
Does
length() not start with 0? Although I understand what's meant here, I wonder if it would not be better (as in more obvious/clear) to just state that
length() just returns the character count.