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