Удалить текст между 2 словами - C#

Узнай цену своей работы

Формулировка задачи:

Удаляю текст между 2 словами следующим образом:
while (text.IndexOf("ничего") != -1)
    text = text.Remove(text.IndexOf("ничего"), text.IndexOf("нет") + 9);
Но возникает ошибка "Индекс и показание счетчика должны указывать на позицию в строке.". Известно, что ошибку выбивает при второй итерации. Каким образом можно решить проблему?

Решение задачи: «Удалить текст между 2 словами»

textual
Листинг программы
            string text = "мама папа сын дочь зять невеста";//исходный текст. Берется откуда-то
            string word1 = "папа"; string word2 = "зять";//слова. Также берутся откуда-то
            int i1 = text.IndexOf(word1); int i2 = text.IndexOf(word2);
            string mes = ""; string w1="", w2=""; int ind1=0, ind2=0;
            if (i1 == i2) mes = "Задано одно и то же слово";
            else if (i1 > i2) { w1 = word2; ind1 = i2; w2 = word1; ind2 = i1; }
            else { w2 = word2; ind2 = i2; w1 = word1; ind1 = i1; }
            string result = text.Remove(ind1 + w1.Length, i2 - ind1 - w1.Length);
            if (mes == "")
                MessageBox.Show("Из текста:\r\n" + text + "\r\n" + "удаляем текст между словами: " +
                    w1 + " и " + w2 + "\r\n" + "Получаем:\r\n" + result);
            else MessageBox.Show(mes);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5
Похожие ответы