Какой код я бы использовал, чтобы заключить в скобки все вхождения термина / подстроки? - PullRequest
0 голосов
/ 14 февраля 2019

Я знаю, как это сделать ... но способ, которым я думаю, сложен и имеет много места для ошибок.Я все еще изучаю Java, но я узнал, что у Java есть способы делать что угодно.Есть ли способ, которым я могу поставить скобки вокруг каждого вхождения подстроки?(см. пример ниже)

Исходная строка: "abcabcabcd"

Поиск: "abc"

Окончательный вывод: "(abc) (abc) (abc) d«

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Если вас интересует другое решение, есть решение с рекурсией.Просто для образовательных целей:

private static String parentheses(String input, String template) {
    int start = input.indexOf(template);

    if (start == -1) {
        return input;
    }

    return input.substring(0, start) +
            "(" + input.substring(start, start + template.length()) + ")" +
            parentheses(input.substring(start + template.length()), template);
}
0 голосов
/ 14 февраля 2019

Самый простой способ здесь - это использовать String::replaceAll

String str = "abcabcabcd";
String sub = "abc";
System.out.println(str.replaceAll(sub, "(" + sub + ")"));

Как указывает @Jacob G., String::replace может быть предпочтительным здесьпотому что нет необходимости в элементе регулярного выражения.

Вывод:

(abc) (abc) (abc) d

...