C# (C Sharp) - Dzielenie stringów separatorem char i string (metoda Split)
Zauważyłem, że sporemu gronu osób sprawia dużą trudność zagadnienie podziału ciągu znaków/stringa w języku C#, gdy ogranicznikiem ma być inny string. Sprawa tak na prawdę jest bardzo prosta, trzeba tylko uważnie spoglądać na podpowiedzi, lub zajrzeć do opisu metody Split() należącej do obiektu string, a szczególnie na to jakie parametry przyjmuje.
Dlaczego dzielenie stringów sprawia trudności?
O ile podział stringa w języku C# ze względu na pojedynczy znak (char) nie jest problemem, bo wywołanie funkcji string.Split() jest bardzo proste:string[] listaImion0 = imiona.Split(';');
string[] listaImion1 = imiona.Split("_;_"); // -> The best overloaded method match for "string.Split(params char[])" has some invalid arguments
string[] listaImion1 = imiona.Split("_;_", StringSplitOptions.None);
Podanie opcji podziału stringa nie wystarczy, ponieważ pierwszy argument jest zły. Funkcja split, nigdy nie przyjmuje zwykłego stringa!
Co w tej sytuacji?
Nie przyjmuje stringa, ale... przyjmuje tablicę stringów. Jeśli więc interesuje nas jeden delimiter w postaci stringa, należy wysłać jednoelementową tablicę stringów. Prosta modyfikacja poprzedniego kodu, pozwoli nam na osiągnięcie zamierzonego celu:string[] listaImion1 = imiona.Split(new string[] {"_;_"}, StringSplitOptions.None);
Tym sposobem podzielimy dany ciąg znaków ze względu na string "_;_" i otrzymamy tym samym tablicę pojedynczych imion. Ot i cała trudność :)
Komentarze (2)