Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 05.12.2019
Сообщений: 8

Извлечь и суммировать числа

10.12.2019, 13:03. Показов 3830. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть данный код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApp54
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = "5e11o 8o4l7";
            int sum = 0;
 
            foreach (char c in text)
            {
                if (c >= 48 && c <= 57)
                {
                     sum += c - 48;
                }
            }
            Console.WriteLine(sum);
            Console.ReadKey();
        }
    }
}
Как вы видите он вытаскивает и считывает цифры из текста по отдельности, как мне сделать так что-бы 11 считало вместе а не как две единички?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.12.2019, 13:03
Ответы с готовыми решениями:

Программа, которая позволяет пользователю суммировать вводимые с клавиатуры числа
Реализуйте программу , которая позволяет пользователю суммировать вводимые с клавиатуры числа до тех пор, пока не введена цифра 0....

Извлечь дату и время из числа
Имеется число типа double и оно содержит информацию о дате и времени (подробности тут: http://www.delphibasics.ru/TDateTime.php) Нужно...

Извлечь все числа из строки и поместить в массив
Нужен код, который извлекает из строки вида &quot;1+9-5/4|3\5&quot; все числа, и записывает их в int массив. Числа - любые int, в том числе...

8
 Аватар для Immo
692 / 509 / 238
Регистрация: 02.10.2012
Сообщений: 1,741
10.12.2019, 13:08
C#
1
2
3
string text = "5e11o 8o4l7";
            int sum = new Regex(@"\d+").Matches(text).Cast<Match>().Select(x => int.Parse(x.Value)).Sum();
            Console.WriteLine(sum);
1
0 / 0 / 0
Регистрация: 05.12.2019
Сообщений: 8
10.12.2019, 13:15  [ТС]
Хорошая идея, жаль только я ещё не понимаю что Matches, Cast и прочее делают , а по другому эта задачка никак не решается? по идее можно поиграться с переводом формата text что-бы это как-то работало. Но все равно спасибо за ответ.
0
 Аватар для Immo
692 / 509 / 238
Регистрация: 02.10.2012
Сообщений: 1,741
10.12.2019, 13:26
Лучший ответ Сообщение было отмечено papu16 как решение

Решение

может как то так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
string text = "5e11o 8o4l7";
            string temp = null;
            List<string> list = new List<string>();
            for (int i = 0; i < text.Length; i++)
                if (Char.IsDigit(text[i]))
                    temp += text[i];
                else
                {
                    list.Add(temp);
                    temp = null;
                }
            list.Add(temp);
 
            list.RemoveAll(string.IsNullOrEmpty);
            int sum = 0;
            foreach (string x in list)
                sum += int.Parse(x);
            Console.WriteLine(sum);
1
628 / 392 / 135
Регистрация: 06.03.2017
Сообщений: 1,469
10.12.2019, 13:42
C#
1
2
3
            string text = "5e11o 8o4l7";
            var r = text.Where(x => char.IsDigit(x)).Sum(x => char.GetNumericValue(x));
            Console.WriteLine(r);
0
 Аватар для Immo
692 / 509 / 238
Регистрация: 02.10.2012
Сообщений: 1,741
10.12.2019, 13:45
Цитата Сообщение от Pilarentes Посмотреть сообщение
string text = "5e11o 8o4l7";
            var r = text.Where(x => char.IsDigit(x)).Sum(x => char.GetNumericValue(x));
            Console.WriteLine(r);
нет, ты по отдельности считаешь числа, 11 будет как 1 и 1
0
0 / 0 / 0
Регистрация: 05.12.2019
Сообщений: 8
10.12.2019, 13:50  [ТС]
Спасибо, это уже для такого новичка как я более читаемо и понятно и такой подход пригодится потом и сейчас тоже. Но почему то мне не дает покоя то что можно было бы как то поиграться с конвертациями значений и во время итоговорого sum как-то дать понять ему что эти две единицы должны быть отдельно.
0
 Аватар для Immo
692 / 509 / 238
Регистрация: 02.10.2012
Сообщений: 1,741
10.12.2019, 13:55
самый правильный вариант, это регулярные выражения, если вы потратите немного времени, что бы разобраться, вы поймете как это просто
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,109
Записей в блоге: 2
10.12.2019, 14:01
Лучший ответ Сообщение было отмечено papu16 как решение

Решение

papu16
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
string text = "5e11o 8o4l7" + " ";
int sum = 0;
 
int num = 0; // Накапливаемое число
foreach (char ch in text) // Перебор символов строки
   if (char.IsDigit(ch)) // Символ это цифра
       num = 10 * num + ch - '0';
   else
   {
         sum += num;
         num = 0;
    }
 
Console.WriteLine("Сумма чисел = " + sum);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.12.2019, 14:01
Помогаю со студенческими работами здесь

извлечь квадратный корень из числа типа decimal
Возникла необходимость работать с типом decimal. Но sqrt вот с ним не работает. Не подскажете, как извлечь квадратный корень в числа такого...

Суммировать два числа без "+"
Здравствуйте, помогите написать программку: Суммировать два числа без использования &quot;+&quot;

Суммировать элементы массива, расположенные до первого четного числа. Суммировать все нечетные элементы и <11
1. Нужно вычислить сумму массива до первого четного с помощью формул Excel Не удается модернизировать формулу, пока она вычисляет...

Вводить и суммировать числа, пока пользователь не введет 2 одинаковых числа
Помогите написать 2 задачки на с++. 1.Вводить и суммировать числа пока пользователь не введет 2 одинаковых числа. 2.Пользователь вводит...

Суммировать положительные числа до первого отрицательного числа
Всем привет, есть задачка, надо найти сумму положительных чисел до первого отрицательного числа, всё что после отрицательного суммировать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru