Нахождение чисел в заданной строке и выведение их суммы - C#

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

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

Доброго времени суток, друзья! Прошу вас помочь мне вот с каким делом. У меня есть поле ввода. Туда пользователь вводит строку, состоящую из букв, чисел, знаков препинания. Так вот, необходимо найти в тексте эти самые числа и сложить их. Проблем с нахождением числа по одному у меня не возникло: строка: q7w8e9r и сумма получается 24, всё хорошо. Но при этом если ввести q78w9e, он всё равно посчитает как 24, а необходимо 87. И я понимаю, что нужно сделать: при нахождении числа кидать на счётчик +1, проверять символы после него, если там снова число, то снова на счётчик +1 и тд, а если не число, то запускать подсчёт суммы, используя показания счётчика в качестве степени для десятки, на которую нужно умножать элемент. И так до следующего числа. Но вся беда в том, что я не могу добиться корректной работы - я нагромоздила столько условий (без которых, вроде как, нельзя, ведь это различные проверки), что просто уже мозг потёк. И всё равно подсчёт суммы срабатывает не в том месте, где нужно и сумма получается совершенно не та. И иногда счётчик сбивается. Не прошу вас предоставлять мне код, просто помогите, пожалуйста, с алгоритмом. То, что составляю я, на бумаге ручками компилится, а вот программа умнее и всё оказывается неправильно.

Решение задачи: «Нахождение чисел в заданной строке и выведение их суммы»

textual
Листинг программы
  1.     string text = "ab123k55oa8d66";
  2.     int sum = 0;
  3.     int number = 0;
  4.    
  5.     foreach (var ch in text)
  6.     {
  7.         if (ch >= '0' && ch <= '9')
  8.         {
  9.             number = number * 10 + ch - '0';
  10.         }
  11.         else
  12.         {
  13.             sum += number;
  14.             number = 0;
  15.         }
  16.     }
  17.    
  18.     sum += number;

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


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

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

11   голосов , оценка 4.273 из 5

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

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

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