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!
Java String indexOf() There are four variants of indexOf() method.
Using indexOf() and lastIndexOf() method The String class provides an indexOf() method that returns the index of the first appearance of a character in a string. To get the indices of all occurrences of a character in a String, you can repeatedly call the indexOf() method within a loop.
Even if I switch the order of indexOf and contains, indexOf is still faster. In the benchmark i linked, the passed value is also alreday a string!
The indexOf() method returns the position of the first occurrence of specified character(s) in a string.
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); }
There's a another version of indexOf
method, taking fromIndex
as parameter.
So, you can call it in a loop, each time passing prevPosition + 1
as a second parameter.
Documentation:
http://download.oracle.com/javase/6/docs/api/java/lang/String.html#indexOf(int, int)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With