Нахождение чисел в заданной строке и выведение их суммы - 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;

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


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

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

11   голосов , оценка 4.273 из 5
Похожие ответы