Професионална програма
Loading...
+ Нов въпрос
YanaStamenova avatar YanaStamenova 21 Точки

Race - Regular Expressions

Здравейте, имам проблем със задача Race от лекцията Regular Expressions. Условие: https://judge.softuni.bg/Contests/1668/Regular-Expressions-Exercise

Ето и линк към моето решение (не съм стигнала до финално форматиране и подреждане): https://pastebin.com/k5zuwzjT

Проблем се явява при опита ми да парсна match-натия стринг към инт. При стартиране на програмата ми показва Input was not in a correct format.

Грешката е тук: 

int splitDigits = 0;

                foreach (Match item in nameDistance)
                {
                    splitDigits += int.Parse(item.Groups["distance"].Value);
                }

А в regex101 изразът ми правилно засича числа и букви. Съответно, не знам защо ми дава грешка.

Ще съм благодарна на малко помощ.

0
Module: C# Advanced
msmner avatar msmner 38 Точки
Best Answer

Здравей!

Дава ти грешка, защото първият item в колекцията ти е буква и гърми при парсването. Направи си празен стринг и конкатенирай числата и след това ги обходи и ги събери. Нещо такова:


string splitDigitsAsStr = "";

foreach (Match item in nameDistance)
                {
                    splitDigitsAsStr += item.Groups["distance"].Value;
                }

 int splitDigits = 0;
 foreach (var item in splitDigitsAsStr)
                {
                    splitDigits += int.Parse(item.ToString());
                }

 

Поздрави!

0
YanaStamenova avatar YanaStamenova 21 Точки

Мерси,

Аз успях да я реша по-рано днес с малки корекции, след като установих това, което и ти си установил :)

Ето и решението: https://pastebin.com/gHcNxyqC

1