Alıştırma - Discover Split() ve Join()
- 10 dakika
Bir lojistik şirketinde geliştirme çalışmalarına devam ettikçe, bir dizi küçük uygulama oluşturmaya başlarsınız. Bu uygulamalar, bir iş ortağının sisteminden veri almak, değiştirmek ve sonra gerekli biçimde bir iç sisteme geçirmek için birlikte çalışır.
Veri dönüştürme gerçekleştirmek için, gelen verileri dize olarak kabul etmeniz, daha küçük veri öğelerine ayrıştırmanız ve ardından gerekli farklı biçimle eşleşecek şekilde işlemeniz gerekir. Dize verilerini daha küçük veri öğelerine nasıl ayrıştırabilirsiniz?
Dize veri türünün Dizi yöntemleri
string türünde değişkenlerin, tek bir dizeyi daha küçük dize dizisine veya tek tek karakter dizisine dönüştüren birçok yerleşik yöntemi vardır.
Diğer bilgisayar sistemlerinden veri işlerken, bazen bu veriler amaçlarınıza uygun olmayan bir şekilde biçimlendirilebilir veya kodlanır. Böyle durumlarda, bir dizeyi string bir diziye ayrıştırmak için veri türünün Dizi yöntemlerini kullanırsınız.
Ters çevirmek için komutunu ToCharArray() kullanın string
Önceki alıştırmalarda yer alan kodun tümünü açıklama satırı yapmak için satır açıklama işlecini
//silin veya kullanın.Visual Studio Code Düzenleyicisi'nde kodunuzu aşağıdaki gibi güncelleştirin:
string value = "abc123"; char[] valueArray = value.ToCharArray();
Bu örnekte yöntemi, ToCharArray() dizinin her öğesinin özgün dizenin charbir karakterini temsil ettiği bir dizisi oluşturmak için kullanılır.
Ters çevirin, ardından char dizisini yeni bir dizede birleştirin
Ardından, dizideki karakterlerin sırası tersine çevrilir ve sonra Write bunları tek bir çıkışta birleştirmek için yöntemi kullanılır.
Visual Studio Code Düzenleyicisi'nde kodunuzu aşağıdaki gibi güncelleştirin:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); string result = new string(valueArray); Console.WriteLine(result);new string(valueArray)ifadesi,System.Stringsınıfının yeni bir boş örneğini oluşturur (bu, C# dilindekistringveri türüyle aynıdır) ve karakter dizisini oluşturucu olarak iletir.Not
newanahtar sözcüğü nedir?System.Stringsınıfı ile C# dilindekistringveri türü arasındaki ilişki nedir? Oluşturucu nedir? Ne yazık ki tüm bu mükemmel sorular, bu modülün kapsamı dışındadır. Bu kod ifadesiyle arka planda neler olduğunu tam olarak anlamak için .NET Sınıf Kitaplığı ve C# içindeki sınıflar ve nesneler hakkında bilgi edinmeye devam edin. Şimdilik, bir dönüştürme gerçekleştirmek istediğinizi bildiğiniz ancak C# kullanarak bunu nasıl yapacağınızı bilmediğiniz durumlarda kullanabileceğiniz örnekleri bulmak için bir arama altyapısı ve Microsoft Belgeleri kullanın.Visual Studio Code Dosyası menüsünde Kaydet'i seçin.
kodu oluşturmadan veya çalıştırmadan önce Program.cs dosyasının kaydedilmesi gerekir.
EXPLORER panelinde, TestProject klasör konumunuzdaki bir Terminali açmak için TestProjesi'ne sağ tıklayın ve Tümleşik Terminalde Aç'ı seçin.
Terminal paneli açılmalı ve Terminal'in TestProject klasör konumunuza açık olduğunu gösteren bir komut istemi içermelidir.
Terminal komut isteminde kodunuzu çalıştırmak için dotnet run yazın ve Enter tuşuna basın.
Not
"Çalıştırılacak proje bulunamadı" iletisini görürseniz Terminal komut isteminin beklenen TestProject klasörü konumunu gösterdiğinden emin olun. Örneğin:
C:\Users\someuser\Desktop\csharpprojects\TestProject>Aşağıdaki çıkışı görmeniz gerekir:
321cba
kullanarak tüm karakterleri yeni bir virgülle ayrılmış değer dizesinde birleştirin Join()
Bazı durumlarda, karakter dizisinin her öğesini virgül kullanarak ayırmanız gerekebilir. Bu, ASCII metni olarak temsil edilen verilerle çalışırken sık kullanılan bir uygulamadır. Bunu yapmak için, Adım 2'de eklediğiniz kod satırını açıklama satırı yapar ve her segmenti (virgül) ve dizinin kendisini sınırlandırmak istediğiniz karakteri geçirerek sınıfın String yöntemini kullanırsınızJoin().
Visual Studio Code Düzenleyicisi'nde kodunuzu aşağıdaki gibi güncelleştirin:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); // string result = new string(valueArray); string result = String.Join(",", valueArray); Console.WriteLine(result);Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu çalıştırın.
Aşağıdaki çıkışı görmeniz gerekir:
3,2,1,c,b,a
Split() virgülle ayrılmış değer dizesi bir dize dizisine
Kodu Split() tamamlamak için yöntemi kullanılır. Bu yöntem, tür string değişkenleri için tasarlanmıştır ve bir dize dizisi oluşturur.
Dosyanın en altına aşağıdaki kod satırlarını eklemek için Visual Studio Code Düzenleyicisi'ni kullanın:
string[] items = result.Split(','); foreach (string item in items) { Console.WriteLine(item); }Önceki kodu gözden geçirmek için bir dakika bekleyin.
Virgül, bir uzun dizeyi
.Split()daha küçük dizelere bölmek için sınırlayıcı olarak verilir. Kod daha sonra yeni oluşturulan dizeforeachdizisinin her öğesinde yinelemek için biritemsdöngü kullanır.Kodunuzun şimdi aşağıdaki gibi görünüp görünmediğini denetleyin:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); // string result = new string(valueArray); string result = String.Join(",", valueArray); Console.WriteLine(result); string[] items = result.Split(','); foreach (string item in items) { Console.WriteLine(item); }Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu çalıştırın.
Kodu çalıştırdığınızda aşağıdaki çıkışı görürsünüz:
3,2,1,c,b,a 3 2 1 c b aitemskullanılarakstring[] items = result.Split(',');oluşturulan dizi, döngüdeforeachkullanılır ve değişkendestringbulunan özgünvaluekarakterlerden tek tek karakterleri görüntüler.
Özet
Dizeler ve dizilerle çalışırken hatırlamanız gereken birkaç önemli nokta şunlardır:
- Dizi oluşturmak için ve gibi
ToCharArray()yöntemleri kullanınSplit() - Diziyi tek bir dizeye geri döndürmek için gibi
Join()yöntemleri kullanın veya bir dizisini geçirerek yeni bir dize oluşturunchar
Bilginizi ölçün
Geri Bildirim
Bu sayfayı yararlı buldunuz mu?
No
Bu konu hakkında yardıma mı ihtiyacınız var?
Bu konuyu açıklığa kavuşturmak veya bu konuda size yol göstermek için Ask Learn'ü kullanmayı denemek ister misiniz?