Удалить из строки все подстроки - C#

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

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

Здравствуйте. Дано условие : Удаляет из строки все подстроки, состоящие из цифр.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace zad2
  7. {
  8. class Program
  9. {
  10. static StringBuilder Del(StringBuilder lol)
  11. {
  12. char[] fig = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
  13. for (int i = 0; i < lol.Length; i++)
  14. {
  15. for (int g = 0; g < fig.Length; g++)
  16. {
  17. if (lol[i] == fig[g]) lol.Remove(i, 1);
  18. }
  19. }
  20. return lol;
  21. }
  22.  
  23. static void Main(string[] args)
  24. {
  25. Console.Write("Введите строку: ");
  26. StringBuilder str = new StringBuilder(Console.ReadLine());
  27. Del(str);
  28. Console.WriteLine("Выходная строка: ");
  29. Print(str);
  30. Console.ReadKey();
  31. }
  32. static void Print(StringBuilder lol)
  33. {
  34. for (int i = 0; i < lol.Length; i++)
  35. {
  36. Console.Write("{0}", lol[i]);
  37. }
  38. }
  39. }
  40. }
Всё время натыкаюсь на ошибку System.IndexOutOfRangeException --> Индекс находился в не границ массива. Скрин ниже.

Решение задачи: «Удалить из строки все подстроки»

textual
Листинг программы
  1. static StringBuilder Del(StringBuilder lol)
  2. {
  3.     char[] fig = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
  4.     for (int i = lol.Length - 1; i >= 0; i--)
  5.     {
  6.             if (Array.IndexOf(fig, lol[i])>=0)
  7.                 lol.Remove(i, 1);
  8.     }
  9.     return lol;
  10. }

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


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

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

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы