C# Дан текст, в котором имеются цифры.а) Найти их сумму
Есть задание : Дан текст, в котором имеются цифры.а) Найти их сумму.
Вот мой код :
string str7 = "На 3 минуте матча был забит гол игроком под номером 7, это его 4 гол в карьере.";
Console.WriteLine(str7);
int sum = 0;
for (int i = 0; i < str7.Length; i++)
{
if (char.IsDigit(str7[i]))
{
Convert.ToInt32(str7[i]);
sum = +str7[i];
}
}
Console.WriteLine($"Сумма = {sum}");
В числе сумма выбивает число 52 . Почему так?
Ответы (1 шт):
Автор решения: Igor Borzenkov
→ Ссылка
В качестве примера решения вашей задачи код:
string str7 = "На 3 минуте матча был забит гол игроком под номером 7, это его 4 гол в карьере.";
Console.WriteLine(str7);
int sum = 0;
foreach (char ch in str7)
{
if (int.TryParse(ch.ToString(), out int digit))
sum += digit;
}
Console.WriteLine($"Сумма = {sum}");
Вы в вашем примере, используя метод Convert.ToInt32(ch):
- Получаете код символа в таблице ASCII, а не само значение цифры;
- Не присваиваете результат работы метода и он просто теряется;
- Используемая вами лексема "= +" в строке sum = +str7[i];, означает "присвой в переменную sum значение кода символа str7[i]". Вероятно, вы хотели написать sum += str7[i];.