Во всех словах предложения, отличных от последнего слова, удалить все предыдущие вхождения последней буквы - 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д