Loading...
simasim avatar simasim 5 Точки

Как split-ва, когато имаме два различни разделителя, които се подават - в единия случай "-", а в другия - ":"?

Здравейте, някой знае ли как се пише лист или масив, когато от конзолата има вероятност да му подадат два различни стринга?

В единия случай ще е List<string> text = Console.ReadLine().Split("-").ToList()м

В другия ще е List<string> text = Console.ReadLine().Split(":").ToList();

Как да се изпише листът, за да идентифицира програмата кой от двата типа чете?

Ето и условието:

Your task is to take every game and add it with its price. The games may have DLCs (downloadable content), which you should also add. The games will be given in the following format "{game}-{price}". The game names will contain only letters, digits and spaces. The DLCs will be given in the following format "{game}:{DLC}". All the of the inputs will be divided by ", ". You should only add the DLC if the game already exists. The DLC increases the game price by 20%.

After you have processed all the games you should lower the prices of all the games by 20% if they don't have a DLC and by 50% if they do. After this you should print the games with DLCs, ordered ascending by price, and then all the games without DLCs, ordered descending by price, in the following format:

  • If the game has a DLC:

    • "{game} - {DLC} - {price}"

  • If the game doesn't have a DLC:

    • "{game} - {price}"

The prices should be formatted to the second decimal place.

Тагове:
0
Programming Fundamentals 09/03/2019 13:54:08
MArnaudov07 avatar MArnaudov07 12 Точки

Здравей! По условието на задачата като input получаваш string, който съдържа или игра с цена, или игра с DLC, разделени със ", ".(Например: "{game}-{price}, {game}-{price}, {game}:{DLC}...") Така че първата ти подзадача е да сплитнеш input-а по ", ".

 

string[] input = Console.ReadLine().Replace(", ", ",").Split(',');

 

След като направиш това въртиш един foreach цикъл върху input и правиш проверки дали имаш игра с цена или игра с DLC. Проверката можеш да я направиш най-лесно като използваш RegEx.

 

Примерен код:

            Regex gamePricePattern = new Regex(@"[\w\d\s]+\-[\w\d\s\.]+");
            Regex gameDlcPattern = new Regex(@"[\w\d\s]+\:[\w\d\s]+");

            foreach (string str in input)
            {
                if (gamePricePattern.IsMatch(str))
                {
                    string[] game = str.Split('-'); // game[0] ще ти е името на  играта, а game[1] цената.
                }
                if (gameDlcPattern.IsMatch(str))
                {
                    string[] game = str.Split(':');  // game[0] ще ти е името на играта, а game[1] DLC-то.

                }
            }

 

Ако нещо не ти е ясно питай. :)

0
10/03/2019 14:36:09
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.