Método indexOf de Java para múltiples coincidencias en String

Tuve una pregunta sobre el método indexOf. Quiero encontrar varios casos de “X” en una cadena.

Supongamos que mi cadena es “x es x es x es x”, quiero encontrar x en todas sus posiciones de índice.
¿Pero cómo haces esto para casos múltiples? ¿Es esto incluso posible con indexOf?

Lo hice int temp = str.indexOf (‘x’);
Encuentra la primera x. Intenté hacer un bucle for en el que se inicializaba la longitud de la cadena y esto no funcionó, ya que seguía encontrando el primer x una y otra vez.

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

Pero esto no funciona. ¿Se supone que debo usar regex? Porque realmente no sé cómo usar el método de expresiones regulares.

¡Cualquier ayuda será apreciada, gracias!

Mejor respuesta
Hay una segunda variante del método indexOf, que toma un índice de inicio como parámetro.

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

Por favor indique la dirección original:Método indexOf de Java para múltiples coincidencias en String - Código de registro