Search code examples
javaindexof

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!


Solution

  • 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);
    }