Alıştırma - Doldurmayı ve hizalamayı keşfetme
- 12 dakika
string.Format() yöntemi, örnekte olduğu gibi bileşik biçimlendirme gerçekleştirmek için kullanılır:
string first = "Hello";
string second = "World";
string result = string.Format("{0} {1}!", first, second);
Console.WriteLine(result);
Veri türünü temsil eden bir anahtar sözcüğün, sınıfındaki Console yöntemleri çağırdığınız gibi çağırabileceğiniz yöntemlere sahip olması biraz garip görünebilir. Gerçek şu ki, veri türü ve dize türündeki string herhangi bir değişmez dize veya değişken üzerinde birçok benzer yöntem vardır.
Neler olabileceği hakkında fikir edinebilmeniz için bu yerleşik yöntemlerin kategorilerinin kısa bir listesi aşağıdadır.
- Biçimlendirme amacıyla boş alan ekleyen yöntemler (
PadLeft(),PadRight()) - İki dizeyi karşılaştıran veya karşılaştırmayı kolaylaştıran yöntemler (
Trim(),TrimStart(),TrimEnd(),GetHashcode(),Lengthözelliği) - Bir dizenin içinde ne olduğunu belirlemenize ve hatta dizenin yalnızca bir bölümünü (
Contains(),StartsWith(), ,EndsWith()Substring()) almanıza yardımcı olan yöntemler - Bölümleri (
Replace(),Insert(),Remove()) değiştirerek, ekleyerek veya kaldırarak dizenin içeriğini değiştiren yöntemler - Bir dizeyi dize veya karakter dizisine dönüştüren yöntemler (
Split(),ToCharArray())
Dizeleri biçimlendirmek için önüne veya arkasına boşluk ekleme
yöntemi, PadLeft() dizenin sol tarafına boş boşluklar ekler, böylece toplam karakter sayısı gönderdiğiniz bağımsız değişkene eşit olur. Bu durumda, dizenin toplam uzunluğunun 12 karakter olmasını istersiniz.
Önceki alıştırmalarda yer alan kodun tümünü yorum satırı haline getirmek 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 input = "Pad this"; Console.WriteLine(input.PadLeft(12));Visual Studio Code Dosyası menüsünde Kaydet'i seçin. Kodu oluşturmadan veya çalıştırmadan önce Program.cs dosyasını kaydedin.
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.
Uyarı
"Ç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>Kodu çalıştırdığınızda, dizenin soluna ön eklenen dört karakterin, uzunluğu 12 karaktere çıkardığını görürsünüz.
Pad thisDizenizin sağ tarafına boşluk veya karakter eklemek için bunun yerine yöntemini kullanın
PadRight(). 1. Visual Studio Code Düzenleyicisi'nde kodunuzu aşağıdaki gibi güncelleştirin:Console.WriteLine(input.PadRight(12));Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu çalıştırın. Dizenin sonuna eklenen karakterleri gözlemlemezsiniz, ancak bunlar oradadır.
Aşırı yüklenmiş yöntem nedir?
C# dilinde aşırı yüklenmiş yöntem , yöntemin aşırı yüklenmiş sürümünde olduğu gibi, yöntemin işlevselliğini biraz değiştiren farklı veya ek bağımsız değişkenlere sahip başka bir yöntem sürümüdür PadLeft() .
İkinci bir aşırı yüklenmiş yöntem sürümünü çağırarak boşluk yerine kullanmak istediğiniz herhangi bir karakteri geçirebilirsiniz. Bu durumda, fazladan boşluğu tire karakteriyle doldurursunuz.
Önceki adımdaki kodun tamamını açıklama satırı yapmak için ya silin ya da satır açıklama işlecini
//kullanın.Visual Studio Code Düzenleyicisi'nde kodunuzu aşağıdaki gibi güncelleştirin:
Console.WriteLine(input.PadLeft(12, '-')); Console.WriteLine(input.PadRight(12, '-'));Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu çalıştırın. 12 karakter uzunluğundaki dizenin solunda dört tire görmelisiniz.
----Pad this Pad this----
Şimdi bu yeni bilgiyi başka bir gerçek dünya senaryosuna uygulayın.
Doldurulmuş dizelerle çalışma
Eski ana bilgisayar sistemlerini hala destekleyen bir ödeme işleme şirketinde çalıştığınızı varsayalım. Bu sistemler genellikle belirli sütunlarda veri girişi yapılmasını gerektirir. Örneğin, Ödeme Kimliği'ni 1 ile 6 arasında, ödemenin adını 7 ile 30 arasında ve Ödeme Tutarı'nı 31 ile 40 arasında bir sütunda depolayın. Ayrıca, önemli olan Ödeme Tutarı'nın doğru hizalanmış olmasıdır.
İlişkisel veritabanı yönetim sistemindeki verileri eski dosya biçimine dönüştürecek bir uygulama oluşturmanız istenir. Tümleştirmenin doğru çalıştığından emin olmak için ilk adım, eski sistem bakımcılarına çıkışın bir örneğini vererek dosya biçimini onaylamaktır. Daha sonra, yüzlerce veya binlerce ödemeyi işlenmek üzere bir ASCII metin dosyası aracılığıyla göndermek için bu çalışmayı geliştirirsiniz.
Ödeme Kimliğini çıkışa ekleme
Başlamak için Ödeme Kimliği'ni ilk altı sütuna yazdırın. Amaçlar için yeterli olması gereken bazı rastgele ödeme verileri seçersiniz.
Önceki adımdaki kodun tamamını açıklama satırı yapmak için ya silin ya da satır açıklama işlecini
//kullanın.Visual Studio Code Düzenleyicisi'nde kodunuzu aşağıdaki gibi güncelleştirin:
string paymentId = "769C"; var formattedLine = paymentId.PadRight(6); Console.WriteLine(formattedLine);Çıktı dizesini
formattedLineoluşturmak için değişkeni yeniden kullanın.Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu çalıştırın. Aşağıdaki çıkışı görmeniz gerekir:
769C
Sağ tarafta görünür olmayan iki boş alan vardır. Bir sonraki adımda bunların mevcut olduğunu onaylayacaksınız.
Çıktıya alacaklının adını ekle
Ardından, uygun bir şekilde doldurarak kurgusal bir Alacaklı Adı eklersiniz.
Visual Studio Code Düzenleyicisi'nde kodunuzu aşağıdaki gibi güncelleştirin:
string paymentId = "769C"; string payeeName = "Mr. Stephen Ortega"; var formattedLine = paymentId.PadRight(6); formattedLine += payeeName.PadRight(24); Console.WriteLine(formattedLine);+=işleci, değişkeninformattedLineönceki değerini alıp yeni değeri ekleyerek bir dize birleştirme işlemi gerçekleştirir. Bu, aşağıdaki kod örneğinin kısaltılmış eşdeğeridir:formattedLine = formattedLine + payeeName.PadRight(24);Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu çalıştırın. Aşağıdaki çıkışı görmeniz gerekir:
769C Mr. Stephen Ortega
Yine, Alacaklının Adı'nın ardından oldukça fazla boş alan vardır. Ayrıca, 1. Adım'da Ödeme Kimliği'nden sonra iki boş alan vardır.
Ödeme tutarını çıkışa ekleyin
Ardından kurgusal bir Ödeme Tutarı ekleyin ve çıkışı sağa hizalamak için kullandığınızdan PadLeft() emin olun.
Visual Studio Code Düzenleyicisi'nde kodunuzu aşağıdaki gibi güncelleştirin:
string paymentId = "769C"; string payeeName = "Mr. Stephen Ortega"; string paymentAmount = "$5,000.00"; var formattedLine = paymentId.PadRight(6); formattedLine += payeeName.PadRight(24); formattedLine += paymentAmount.PadLeft(10); Console.WriteLine(formattedLine);Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu çalıştırın. Aşağıdaki çıkışı görmeniz gerekir:
769C Mr. Stephen Ortega $5,000.00
Bu çıkış, eski sistem bakımcılarının aradıkları şeye oldukça yakındır.
Sonucu daha kolay onaylamak için çıkışın üzerine bir sayı satırı ekleyin
Her veri öğesinin göründüğü sütunları tam olarak saymak zor olduğundan, çıktının hemen üstüne sütunları saymanıza yardımcı olacak bir çizgi eklersiniz.
Console.WriteLine("1234567890123456789012345678901234567890");
Visual Studio Code Düzenleyicisi'nde kodunuzu aşağıdaki gibi güncelleştirin:
string paymentId = "769C"; string payeeName = "Mr. Stephen Ortega"; string paymentAmount = "$5,000.00"; var formattedLine = paymentId.PadRight(6); formattedLine += payeeName.PadRight(24); formattedLine += paymentAmount.PadLeft(10); Console.WriteLine("1234567890123456789012345678901234567890"); Console.WriteLine(formattedLine);Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu çalıştırın. Yeni tümleştirmenin düzgün çalıştığını onaylamak için eski sistemin bakımcılarına gönderebileceğiniz aşağıdaki çıkışı görmeniz gerekir:
1234567890123456789012345678901234567890 769C Mr. Stephen Ortega $5,000.00
Başarı!
Özet
Bu üniteden birkaç önemli sonuç alınıyor.
-
stringveri türü, sabit dizeler ve dize türündeki değişkenler, dizelerde biçimlendirme, değiştirme ve başka işlemler gerçekleştirme için birçok yardımcı yöntem uygular. -
PadLeft()vePadRight()yöntemleri, bir dizenin toplam uzunluğuna boşluk (veya isteğe bağlı olarak başka bir karakter) ekler. - Dizeyi sağa hizalamak için kullanın
PadLeft(). - Bazı yöntemler aşırı yüklenmiştir, yani işlevlerini etkileyen farklı bağımsız değişkenlere sahip yöntemin birden çok sürümü vardır.
-
+=işleci, sağdaki yeni bir dizeyi soldaki mevcut dizeyle birleştirir.