Не знаю, чувствовал необходимость делать это с рекурсией.
public class StringReplacement {
private static final String HELLO = "Hello";
/**
* @param args
*/
public static void main(String[] args) {
String stringToTransform = "Hello how Hello are Hello";
System.out.println(transform(stringToTransform));
}
private static String transform(String stringToTransform) {
return transform(stringToTransform, 1);
}
private static String transform(String stringToTransform, int counter) {
String output = stringToTransform.replaceFirst(HELLO, String
.valueOf(counter));
if (output.contains(HELLO))
return transform(output, ++counter);
else
return output;
}
}