@Amigo2019

Как сделать поличество пропусков при замене равными длине слова или же сделать пересчёт чтоб не рушились замены?

Добрый день!
Надо заместить на пустоту/удалить слова из массива в строке.
Я нахожу начальные индекссы, а потом замещаю на пустоту, но у меня замены коверкают текст -как это можно поправить?
ublic class Keywords {
    public static String searchAndReplaceKeywords(String afterD){
        String codeAfterSC="";
        Lexemes instanceLexemes = new Lexemes();
        StringInStringSearch instanceSearch = new StringInStringSearch();
        StringBuilder builder=new StringBuilder(afterD);
        for (int i = 0; i < instanceLexemes.stringKeywords.length; i++) {
            String word = instanceLexemes.stringKeywords[i];
            int size=word.length();
            System.out.println("Keyword :     " + word + "  finded in places: " + instanceSearch.findString(afterD, word));
            List<Integer> list=instanceSearch.findString(afterD, word);
            for(int j=0;j< list.size();j++){
                int indexDelete=list.get(j);
                int end=indexDelete+size;
                builder.replace(indexDelete,end,"    ");
            }
        }
        return codeAfterSC=builder.toString();

    }
}

Спасибо.
  • Вопрос задан
  • 64 просмотра
Пригласить эксперта
Ответы на вопрос 1
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
Разверните цикл, в котором вы проходитесь (по j) по вхождениям ключевого слова. Если удалять с конца, то индексы не съедут.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы