Метод .split() - C#

Узнай цену своей работы

Формулировка задачи:

Итак, помогите пожалуйста написать метод сплит, или скопипастьте мне его код, пожалуйста. Просто мне сказали не пользоваться сплитом, а писать самому. Я сделал разделитель, но не могу из него метод создать. Помогите написать метод, который через разделитель указанный сделает массив строк

Решение задачи: «Метод .split()»

textual
Листинг программы
 class Program
    {
        private static void Main(string[] args)
        {
 
            string str = ",123,546,879,454,";
            foreach (var word in str.MySplit(new []{',','.',' '}))
            {
                Console.WriteLine( "_{0}_",word);
            }
            Console.ReadLine();
        }
    }
 
    public static class MyClass
    {
        public static string[] MySplit(this string str, char[] separators,bool withEmpty = false)
        {
            if (separators == null) throw new ArgumentNullException("separators");
            if (str == null) throw new ArgumentNullException("str");
            if (separators.Length == 0) throw new ArgumentException("Массив пустой");
            if (string.IsNullOrWhiteSpace(str)) throw new ArgumentException("Строка пустая");
 
            var list = new List<string>();
            int start=-1, end=0;
            string substr = string.Empty;
            for (int i = 0; i < str.Length; i++)
            {
                if (!separators.Contains(str[i])) 
                    continue;
                // если текущий символ есть в массиве разделителей
                end = i;
                substr = str.Substring(start + 1, end - start - 1);
                if (!withEmpty)
                {
                    // если опция без пустых строк то не копируем если строка пустая
                    if (!string.IsNullOrWhiteSpace(substr))
                        list.Add(substr);
                }
                else
                {
                    list.Add(substr);
                }
 
                start = end;
            }
            substr = str.Substring(end + 1, str.Length - end - 1);
            if (!withEmpty)
            {
                // если опция без пустых строк то не копируем если строка пустая
                if (!string.IsNullOrWhiteSpace(substr))
                    list.Add(substr);
            }
            else
            {
                list.Add(substr);
            }
 
            return list.ToArray();
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.733 из 5