замена определенного шаблона в строке на автоматически увеличивающийся номер - PullRequest
0 голосов
/ 30 августа 2009

У меня есть строка типа "Hello how Hello are Hello" Я хочу заменить число раз, когда "Hello" встречается в приведенной выше строке, на число автоинкремента.

Такой, что результат будет: "1 how 2 are 3"

"Hello" может происходить любое количество раз

Ответы [ 2 ]

1 голос
/ 30 августа 2009

Не знаю, чувствовал необходимость делать это с рекурсией.

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

}
0 голосов
/ 30 августа 2009

попробуйте этот простой метод:

public static String transform(String input) {
    StringBuilder stringBuilder = new StringBuilder();
    int i = 1;

    for (String s : input.split("Hello")) {
        stringBuilder.append(String.format("%s %d", s, i++));
    }

    return stringBuilder.toString();
}

Пример использования

public static void main(String[] args) {
    String i = "Hello how Hello are Hello";
    System.out.println(transform(i));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...