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
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() .
