Below is an AP styled multiple choice question involving involving a while loop over a string and the indexOf() method.
What is the result of the call to the method mystery(“xyaxy__x_yxy”,”xy”)
- ArrayIndexOutOfBounds Error
- returns 1
- infinite loop
- returns 3
- returns 2
1 2 3 4 5 6 7 8 9 10 |
public int mystery(String str, String s2) { int r =0; while (str.indexOf(s2) > -1 ) { r++; str = str.substring(str.indexOf(s2) + s2.length() ) ; } return r; } |
Scroll down for answer.
The answer is
- ArrayIndexOutOfBounds Error
- returns 1
- infinite loop
- returns 3
- returns 2
This method does not go out of bounds. This method counts up how many times s2 occurs in str by resizing the string using indexOf() and substring() .