Професионална програма
Loading...
ani99 avatar ani99 3 Точки

Tech Module/ Strings and Text Processing 1. Valid Usernames

Имам 40/100, но нулевите тестове минават и не мога да видя къде бъркам.

 

string[] userNames = Console.ReadLine().Split(new[] { ',', ' ' });

            List<string> validUserNames = new List<string>();
            
            for (int i = 0; i < userNames.Length; i++)
            {
                string user = userNames[i];
                if (user.Length >= 3 && user.Length <= 16)
                {
                    bool validUsernames = ValidUserNames(user);
                    if (validUsernames == true)
                    {
                        validUserNames.Add(user);
                    }
                }
            }

            Console.WriteLine(string.Join(Environment.NewLine, validUserNames));     
        }

        private static bool ValidUserNames(string user)
        {
            foreach (var symbol in user)
            {
                if (char.IsLetterOrDigit(symbol) || symbol == '-' || symbol == '_')
                {
                    continue;
                }
                else
                {
                    return false;
                }
            }
            return true;

 

P. S: Знам, че ще получа подкрепa и благодаря предварително))

0
Programming Fundamentals
emo.999 avatar emo.999 399 Точки
Best Answer

Проблема е при четенето. Поправи го така и всичко е точно. smiley

string[] userNames = Console.ReadLine().Split(", ");
0
ani99 avatar ani99 3 Точки

Благодаря! Аз също вече съм убедена, че проблемът е там. Използвам масива от символи обаче защото това е единствения вариант, при които не дава грешка. Когато го правя с Split(", "), го подчертава и изписва "cannot convert from string to char". Вероятно нещо трябва да добавя, за да работи...

1
emo.999 avatar emo.999 399 Точки

Ами това е понеже сплита в C# не е овърлоуднат да приема string и затова му подаваш char array.

Има нещо подобно, което можеш да използваш: Тук можеш да видиш повече.

0
ani99 avatar ani99 3 Точки

Стана с Split(new string[] { ", " }, StringSplitOptions.RemoveEmptyEntries). Благодаря много!

0