Reemplace todas las instancias en cadena con un reemplazo único

Estoy tratando de reemplazar todas las instancias de una Cadena particular con un reemplazo único.

Lo que me gustaría:

Si tengo esta cadena:

String testScript = "while(true) { } while   (10 < 7) { } while((10 < 7)) { }";

Me gustaría esta salida:

while(arg0 < 5000 && true) { } while(arg1 < 5000 && 10 < 7) { } while(arg2 < 5000 && (10 < 7)) { }

Lo que tengo:

Sin embargo, la cadena pasó areplaceAll no vuelve a ser consultado (obvio ahora lo pienso).

while(arg0 < 5000 && true) { } while(arg0 < 5000 && 10 < 7) { } while(arg0 < 5000 && (10 < 7)){ }

Cualquier respuesta o comentario, como siempre, es muy apreciado.

SSCCE:

public static void main(String[] args) {
     int counter = 0;
     String testScript = "while(true) { } while   (10 < 7) { } while((10 < 7)) { }";
     String out = testScript.replaceAll("while\\s*\\(", "while(arg" + (counter++) + " < 5000 && ");
     System.out.println(out);
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta