C# ‘da, Split() bir string sınıfı yöntemidir. Split() yöntemi, Split() yönteminde parametre olarak iletilen sınırlayıcılarla ayrılmış orijinal dizenin bölünmesiyle oluşturulan bir dizeler dizisi döndürür. Sınırlayıcılar bir karakter veya bir karakter dizisi veya bir dizeler dizisi olabilir. Veya geçerli örnekte belirli bir dizenin veya Unicode karakter dizisinin öğeleri tarafından ayrılmış alt dizeleri içeren bir dize dizisi döndürdüğünü de söyleyebilirsiniz.
Örn: hobileri virgüller ile ayırıp tutmak. Yada bir coğrafi konumun enlem ve boylam değerlerini özel semboller( virgül vb) ile ayırarak tutmak.
Split metodu bütün programlama dillerinde(java, php, python vs.) olan bir metotdur.
Split metodunun temel çalışma şekli şöyledir. Bir dizgeyi (karakter dizisi) belirli bir ayraç ile parçalayıp, parçalardan bir dizi döndürür.
C # split metodu kullanımı basit örnek (C# Cümleyi Kelimelere Ayırma)
Aşağıda, String.Split() metodunun basit bir gösterimi yer almaktadır.
C# Kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | class Program { static void Main(string[] args) { var metin = "Gökyüzünde yaşlı bir kartal var"; var kelimeler = metin.Split(' '); foreach (var kelime in kelimeler) { Console.WriteLine(kelime); } //Array.ForEach(kelimeler, Console.WriteLine); //foreach kısa yazım Console.ReadLine(); } } |
Çıktı:
1 2 3 4 5 6 7 | Gökyüzünde yaşlı bir kartal var |
C# stringi birden çok karaktere bölmek
C#, birden çok ayırıcı kullanarak bir dizeyi bölmeye izin verir.
C# Kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class Program { static void Main(string[] args) { var metin = " şahin; kartal, orman, gökyüzü; bulut, su, kaya; rüzgar"; char[] ayraclar = {',', ';'}; //ayraçlar var kelimeler = metin.Split(ayraclar); foreach (var kelime in kelimeler) { Console.WriteLine(kelime); } //Array.ForEach(kelimeler, Console.WriteLine); //foreach kısa yazım Console.ReadLine(); } } |
Çıktı:
1 2 3 4 5 6 7 8 9 10 | şahin kartal orman gökyüzü bulut su kaya rüzgar |
C# string bölmek ve boş girişleri atlamak
Stringleri bölmek boş girişlere neden olabilir. Bundan kaçınmak için StringSplitOptions.RemoveEmptyEntries seçeneğini kullanabiliriz.
C# Kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | class Program { static void Main(string[] args) { var metin = "Gökyüzünde yaşlı, bir kartal var"; char[] ayraclar = { ',', ' ' }; //ayraçlar var kelimeler = metin.Split(ayraclar, StringSplitOptions.RemoveEmptyEntries); Array.ForEach(kelimeler, Console.WriteLine); //foreach kısa yazım Console.ReadLine(); } } |
Çıktı:
1 2 3 4 5 6 7 | Gökyüzünde yaşlı bir kartal var |
Alt dizelerin sayısını sınırlamak
İkinci sayım parametresini alan aşırı yüklenmiş bir yöntemle alt dizelerin sayısını sınırlayabiliriz.
C# Kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class Program { static void Main(string[] args) { var metin = " şahin, kartal, orman, gökyüzü; bulut, su, kaya, rüzgar"; char[] ayraclar = {','}; //ayraçlar var kelimeler = metin.Split(ayraclar,5); Array.ForEach(kelimeler, Console.WriteLine); //foreach kısa yazım Console.ReadLine(); } } |
Çıktı:
1 2 3 4 5 6 7 | şahin kartal orman gökyüzü; bulut su, kaya, rüzgar |
C# stringi stringe göre bölmek
Bazen dizeleri bir karakterle değil, başka bir dizeyle bölmek isteyebiliriz. Bunun için aşırı yüklenmiş bir yöntem var.
C# Kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class Program { static void Main(string[] args) { var metin = "şahinxxkartalxxormanxxgökyüzüxxbulutxxsuxxkayaxxrüzgar"; string[] ayraclar = {"xx"}; //ayraçlar var kelimeler = metin.Split(ayraclar, StringSplitOptions.RemoveEmptyEntries); Array.ForEach(kelimeler, Console.WriteLine); //foreach kısa yazım Console.ReadLine(); } } |
Çıktı:
1 2 3 4 5 6 7 8 9 10 | şahin kartal orman gökyüzü bulut su kaya rüzgar |
C # Regex.Split ile stringi bölmek
Regex.Split() yöntemi, bir giriş dizesini normal ifade eşleşmesiyle tanımlanan konumlarda bir alt dizeler dizisine böler.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class Program { static void Main(string[] args) { var metin = "Gökyüzünde \t\tçok fazla bulut \n var."; var rx = new Regex(@"\s+", RegexOptions.Compiled); var liste = rx.Split(metin); Array.ForEach(liste, Console.WriteLine); //foreach kısa yazım Console.ReadLine(); } } |
Çıktı:
1 2 3 4 5 6 7 | Gökyüzünde çok fazla bulut var. |
1 Yorum