Нахождение чисел в заданной строке и выведение их суммы - C#
Формулировка задачи:
Доброго времени суток, друзья!
Прошу вас помочь мне вот с каким делом. У меня есть поле ввода. Туда пользователь вводит строку, состоящую из букв, чисел, знаков препинания. Так вот, необходимо найти в тексте эти самые числа и сложить их.
Проблем с нахождением числа по одному у меня не возникло:
строка: q7w8e9r и сумма получается 24, всё хорошо.
Но при этом если ввести q78w9e, он всё равно посчитает как 24, а необходимо 87.
И я понимаю, что нужно сделать: при нахождении числа кидать на счётчик +1, проверять символы после него, если там снова число, то снова на счётчик +1 и тд, а если не число, то запускать подсчёт суммы, используя показания счётчика в качестве степени для десятки, на которую нужно умножать элемент. И так до следующего числа.
Но вся беда в том, что я не могу добиться корректной работы - я нагромоздила столько условий (без которых, вроде как, нельзя, ведь это различные проверки), что просто уже мозг потёк. И всё равно подсчёт суммы срабатывает не в том месте, где нужно и сумма получается совершенно не та. И иногда счётчик сбивается.
Не прошу вас предоставлять мне код, просто помогите, пожалуйста, с алгоритмом. То, что составляю я, на бумаге ручками компилится, а вот программа умнее и всё оказывается неправильно.
Решение задачи: «Нахождение чисел в заданной строке и выведение их суммы»
textual
Листинг программы
- string text = "ab123k55oa8d66";
- int sum = 0;
- int number = 0;
- foreach (var ch in text)
- {
- if (ch >= '0' && ch <= '9')
- {
- number = number * 10 + ch - '0';
- }
- else
- {
- sum += number;
- number = 0;
- }
- }
- sum += number;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д