C# String İşlemleri

  • 4655
  • (1)
  • (5)
  • 09 Haz 2017

Hemen hemen her programda metin bazlı işlemler önem arzetmektedir. C# .NET kütüphanesinde string veri türüne ait çeşitli işlevsel metotlar bulunmaktadır.

String Birleştirme

Metinleri birleştirmek için çeşitli yöntemlerden birini kullanabilirsiniz.

İki veya daha fazla metni + operatörü ile birleştirebilirsiniz.

    
string firstName = "Sami", middleName = "Erhan", lastName = "Yılmaz";
string fullName = firstName + " " + middleName + " " + lastName; // Sonuç "Sami Yusuf Yılmaz"

String.Join metodu ile tek bir birleştirme ayracı ile birleştirebilirsiniz. Bu metodun ilk parametresi birleşen metinlerin arasına gelecek olan ayraç metnidir. Kalan sınırsız sayıda parametreler birleşecek metinlerdir. Bu parametreler tek bir dizi yani string[] olarak da kullanabilirsiniz.

    
string firstName = "Sami", middleName = "Erhan", lastName = "Yılmaz";
string fullName = String.Join(" ", firstName, middleName, lastName); // Sonuç "Sami Yusuf Yılmaz"
string sepNames = String.Join("-", firstName, middleName, lastName); // Sonuç "Sami-Yusuf-Yılmaz"

String.Format metodu ile diğer metinleri tek bir metnin içerisine yerleştirebilirsiniz.

    
string firstName = "Sami", middleName = "Erhan", lastName = "Yılmaz";
string fullName = String.Format("{0} {1} {2}", firstName, middleName, lastName);

C# 6.0 sürümü ile $ operatörünü string değişkenleri içerisine yerleştirme yapmak için kullanabilmektesiniz.

    
string firstName = "Sami", middleName = "Erhan", lastName = "Yılmaz";
string fullName = $"{firstName} {middleName} {lastName}";

String formatları

String.Format metodu ile metnin içerisine int, short, double gibi diğer değişken türlerini de çeşitli formatlarda yazabilmektesiniz.

    
int a = 15, b = 3;
string result = String.Format("{0} ve {1}", a, b); // Sonuç "15 ve 3"
string result = String.Format("{0:D4} ve {1:D6}", a, b); // Sonuç "0015 ve 000003"
string result = String.Format("{0:N2} ve {1:N3}", a, b); // Sonuç "15,00 ve 3,000"

Yukarıdaki int değişkenlerini string değişken türüne formatlı bir biçimde dönüştürebilirsiniz.

    
int a = 15, b = 3;
string result = String.Format("{0} ve {1}", a, b); // Sonuç "15 ve 3"
string result = String.Format("{0} ve {1}", a.ToString("D4"), b.ToString("D6")); // Sonuç "0015 ve 000003"
string result = String.Format("{0} ve {1}", a.ToString("N2"), b.ToString("N3")); // Sonuç "15,00 ve 3,000"

Ondalık sayılar için çeşitli format türleri mevcuttur.

    
double a = 3.1415, b = 0.14;
string result = String.Format("{0:E}", a); // Sonuç "3.141500E+000"
string result = String.Format("{0}", a.ToString("E")); // Sonuç "3.141500E+000"
string result2 = String.Format("{0:P2}", b); // Sonuç "%14,00"

Metni Başından veya Sonundan Kırpma

String.Substring metodu ile metinleri istediğiniz gibi kırpabilirsiniz.

    
string metin;
metin = "Bu metin kırpılarak değiştirilecek";
Console.WriteLine(metin.Substring(5)); // İlk beş karakterden sonrası tamamen alınır: "tin kırpılarak değiştirilecek"
Console.WriteLine(metin.Substring(5, 10)); // İlk beş karakterden sonraki on karakter alınır: "tin kırpıl"
Console.WriteLine(metin.Substring(metin.Length - 5, 5)); // Son beş karakter alınır: "lecek"

string veri türünün Length özelliği metnin karakter uzunluğunu int olarak veren bir özelliktir.

Metnin Karakterleri

string türündeki bir metin değişkeninin her bir karakteri char türündedir. C# dilinde [] parantezleriyle kullanılan indis operatörüyle bu karakterler kullanılabilir.

    
string metin;
metin = "Bu metin kırpılarak değiştirilecek";
Console.WriteLine(metin[0]); // Metnin 0 indisli yani ilk karakteri 'B' yazılır
Console.WriteLine(metin[7]); // Metnin 7 indisli yani sekizinci karakteri 'n' yazılır
char ch10 = metin[10]; // Metnin 10 indisli karakteri ch10 diye bir değişkene atanır
Console.WriteLine(ch10); // ch10 değişkeni yazılır. 'ı'

Metnin indis numarasına göre karakterleri de okunabilmektedir. IndexOf metodu ile bu metoda yazılan int türündeki parametre ile karakter okunur. Metodun geri dönüş türü char değişken türüdür.

    
string metin;
metin = "Bu metin kırpılarak değiştirilecek";
Console.WriteLine(metin.IndexOf('m')); // İlk 'm' karakteri 3 olarak yazılır
Console.WriteLine(metin.IndexOf('a')); // İlk 'a' karakteri 15 olarak yazılır
Console.WriteLine(metin.IndexOf(' ')); // İlk ' ' (boşluk) karakteri 2 olarak yazılır
Console.WriteLine(metin.IndexOf('z')); // İlk 'z' karakteri metnin içinde bulunmadığı için -1 olarak yazılır

LastIndexOf metodu ise sondan başlayarak bir karakterin indisini vermektedir.

    
string metin;
metin = "Bu metin kırpılarak değiştirilecek";
Console.WriteLine(metin.LastIndexOf('e'));
Console.WriteLine(metin.IndexOf('e'));

Kaçış Sekansları (Özel Karakterler)

Metin içerisinde tab boşluğu, yeni satır, tırnak gibi karakterleri belirtmek için kullanılan ifadelere kaçış sekansları denmektedir. Örneğin metin içerisinde yeni satır belirtmek için aşağıdaki gibi bir kod kullanılır.

    
Console.WriteLine("Satır 1\nSatır 2");
// Satır 1 den sonra
// Satır 2 yeni satıra yazılacaktır
Console.WriteLine("Metin 1\tMetin 2");
// Metin 1 den sonra tab boşluğu ve Metin 2 yazılacaktır
// "Metin 1   Metin 2"

  • \' - Tek tırnak
  • \" - Çift tırnak
  • \\ - \ işaretinin kendisi
  • \n - Yeni satır
  • \t - Tab boşluğu
  • \b - Backspace
  • \v - Düşey boşluk
  • \uxxxx - 16 tabanlı xxxx unicode karakteri

Karakter Büyütme ve Küçültme

Bir metnin bütün karakterlerini büyütmek veya küçültmek isteyebilirsiniz. Büyütmek için ToUpper metodu kullanılır. Küçültmek için ToLower metodu kullanılır.
    
string isim = "Ali";
Console.WriteLine(isim); // Ekrana Ali yazılacaktır
Console.WriteLine(isim.ToUpper()); // Ekrana ALİ yazılacaktır
Console.WriteLine(isim.ToLower()); // Ekrana ali yazılacaktır
// Eğer bilgisayarınız ingilizce ise büyütme işleminde ekrana ALI yazılacaktır.
// Ya da programınızı derledikten sonra ingilizce bir bilgisayarda aynısı olur.
// Bunun önüne geçmek için
Console.WriteLine(isim.ToUpper(System.Globalization.CultureInfo.GetCultureInfo("tr-TR")));
// CultureInfo ile istediğiniz kültüre ait harf kuralı uygulanabilir.
// Aynı işlem ToLower için de kullanılabilir.

System.Globalization.CultureInfo nesnesi ile tarih ve zaman değerlerini metne dönüştürürken de belli bir kültürün diline uygun kurallar çerçevesinde yapılabilir.

Aynı şekilde ondalık sayıları metne dönüştürürken veya metinden okurken . veya , farkından oluşacak hataları elimine edilebilir. Çünkü kültüre göre ve uygulamanın çalıştırıldığı bilgisayarın diline göre değişiklik arz etmektedir.

Metin İçerisinde Belli Bir Bölüm Değiştirme

Replace metodu ile string bir değer içerisinde değişiklik yapabilirsiniz.


string cumle = "Pazardan bir kilo elma aldı.";
Console.WriteLine(cumle); // cumle değeri olduğu gibi ekrana yazılacaktır
Console.WriteLine(cumle.Replace("elma", "domates"));
// Ekrana "Pazardan bir kilo domates aldı." yazılacaktır

Dikkat edilmesi gereken husus, Replace metodu uygulandığı string değişkenini değiştirmez. Değiştirilmiş halini yeni bir string türü değer olarak geri döndürür.


string cumle = "Pazardan bir kilo elma aldı.";
cumle.Replace("Pazardan", "Marketten");
Console.WriteLine(cumle); // cumle değeri orijinal hali ile ekrana yazılacaktır
// Değişikliği muhafaza etmek için
string cumle2 = cumle.Replace("Pazardan", "Marketten");
Console.WriteLine(cumle2); // yeni değer ekrana yazılacaktır.
// Değişikliği başka bir değişkene atamak istemiyorsanız
cumle = cumle.Replace("Pazardan", "Marketten");
// şeklinde değişkeni olduğu gibi değiştirebilirsiniz.

String Dizisi Birleştirme

Bir string dizisi birleştirmek için String.Join metodu kullanılabilir. Metodun iki adet parametresi vardır. İlki birleştirilecek dizi elemanlarının arasına konulacak olan seperatördür. İkincisi ise birleştirilecek dizidir.


string[] dizi = new string[]
    { "Kalem", "Kitap", "Defter", "Silgi" };
Console.WriteLine(String.Join(", ", dizi));
// Ekrana "Kalem, Kitap, Defter, Silgi" yazılır
Console.WriteLine(String.Join(".", dizi));
// Ekrana "Kalem.Kitap.Defter.Silgi" yazılır
Console.ReadKey();

İlişkili İçerikler

C# programlama dilinde kullanılan değişken türleri ve bu türlerde tanımlanmış verilerin nasıl kullanılabileceğini bu içerikte öğrenebilirsiniz.

C# dilinde oluşturacağınız bir kayıt(register) sayfasında girilen kullanıcı adı ve şifrenin şartlarını denetleyebileceğiniz regex denetim işlemini inceleyebilirsiniz.

Paylaşın
Etiket Bulutu