Во всех словах предложения, отличных от последнего слова, удалить все предыдущие вхождения последней буквы - C#
Формулировка задачи:
Задание.
Дана последовательность, содержащая слова, в каждом из которых от 1 до 8 строчных (маленьких) латинских букв, разделенные точкой с запятой, после последнего слова - точка.
Во всех словах предложения, отличных от последнего слова, удалить все предыдущие вхождения последней буквы. Например, исходное предложение: «fsdf;iuuy;qwerwq;yjnmkj.», результат: «sdf;iuuy;werwq;ynmkj.».
нужно заменить эти
строки одной с использованием IndexOf. Кто подскажет как это сделать?
Листинг программы
- static string obrabotka(string str){
- //записываем строку в массив строк без разделителей
- string[] mas = str.Split(';', '.');
- str = "";
- for (int i = 0; i < mas.Length; i++)
- //по условию длина слова от 1 до 8 символов
- if (mas[i].Length > 1 && mas[i].Length < 8)
- {
- //цикл по каждому символу слова за исключением последней
- for (int k = 0; k < mas[i].Length - 1; k++)
- {
- //если последняя буква совпадает с найденной
- if (mas[i][mas[i].Length - 1] == mas[i][k])
- {
- // удаляем найденную букву
- mas[i] = mas[i].Remove(k, 1);
- }
- }
- //после каждого проверенного слова ставим точку с запятой
- str = str + mas[i] + ";";
- }
- //удаляем последнюю точку с запятой и добавляем в конец точку
- str = str.Remove(str.Length - 1) + '.';
- //возвращаем обработанную строку
- return str;
- }
Листинг программы
- if (mas[i][mas[i].Length - 1] == mas[i][k])
- mas[i] = mas[i].Remove(k, 1);
Решение задачи: «Во всех словах предложения, отличных от последнего слова, удалить все предыдущие вхождения последней буквы»
textual
Листинг программы
- mas[i] = mas[i].Remove(mas[i].IndexOf(mas[i][mas[i].Length - 1], 0, mas[i].Length - 1), 1);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д