Eric Eric - 5 months ago 37
Java Question

Java indexOf method for multiple matches in String

I had a question about the indexOf method. I want to find multiple cases of "X" in a string.

Suppose my string is "x is x is x is x", I want to find x in all of its index positions.
But how do you do this for multiple cases? Is this even possible with indexOf?

I did int temp = str.indexOf('x');
It find the first x. I tried to do a for loop where i is initialized to length of string and this did not work since I kept finding the first x over and over.

for (int y = temp1; y >= 0;y-- )
{
int temp = str.indexOf('x');
System.out.println(temp);
}


But this does not work. Am I supposed to use regex? Because I don't really know how to use regex method.

Any help would be appreciated, thanks!

Answer

There is a second variant of the indexOf method, which takes a start-index as a parameter.

i = str.indexOf('x');
while(i >= 0) {
     System.out.println(i);
     i = str.indexOf('x', i+1);
}