String Builder Sınıfı

String Builder Sınıfı

String Builder Sınıfı

Bu yazımızda String Builder sınıfı ve kullanım yerlerinden bahsedeceğiz.

Kodlarımızda en sık kullandığımız nesnelerden birisi olan String nesnesi immutable (değiştirilemez) bir nesnedir. Immutable olması nedeniyle üzerinde bir değişiklik işlemi (örneğin string birleştirme) yaptığımızda nesne yeniden oluşturulur ve bellekten yeniden yer ayrılır.  Eğer bir kaç defa bu işlemi yapacaksak çok sorun teşkil etmez ancak bir döngü içerisinde çok fazla sayıda string üzerinde işlem yapmamız gerekli ise bu çok fazla yük getirecektir. İşte bu noktada String Builder sınıfı devreye girmekte ve performansı artırmak için kullanılmaktadır.

System.Text NameSpace’inde bulunan String Builder Sınıfı bize oluşturuduğumuz nesne üzerinde yeni bir nesne oluşturmadan değişiklik yapma imkanı sunar. Bu özelliği ile string üzerinde çok sayıda değişiklik yaptığımız uygulamalarda yüksek performans sağlar. Ayrıca oluşturacağımız stringin büyüklüğünü de başlangıçta belirleyebiliriz.

Şimdide örnekler üzerinde constructor ve methotlarının kullanımı görelim:

StringBuilder sBuilder = new StringBuilder("Default Constructor");
StringBuilder sBuilder = new StringBuilder("Sınırlı Kapasite", 100);

sBuilder.Append("string ekle");
sBuilder.AppendLine(); //Yeni Satır ekle
sBuilder.AppendLine("Yeni satır ve string ekle");

sBuilder.Replace("A", "B"); //A harflerini B ile değiştir
sBuilder.Insert(15,"beni 15. karakterden sonra ekle" );

Reklamlar

Asp.Net ile Metinden URL Oluşturma

metinden url oluşturmaSeo açısından URL içerisinde geçen keyword‘lerin ne kadar değerli olduğunu biliyoruz. Bu yüzden bazen elimizdeki metinden otomatik olarak URL oluşturmamız gerekebilir.

Seo açısından URL’lerimiz 75 karakteri geçmemeli ve Türkce karakter bulundurmamalıdır. Buna ek olarak kelimeler birbirinden “-” karakteri ile ayrılmalıdır. Tüm bu seo kurallarına uyarak metni URL’e çeviren methodu aşağıda bulabilirsiniz.

Method string olarak metni alıp yine string olarak url döndürmektedir.

private string urlYap(string data)
{
data = data.Replace(",", "").Replace("\"", "").Replace("'", "").Replace(":", "").Replace(";", "").Replace(".", "").Replace("!", "").Replace("?", "").Replace(")", "").Replace("(", " ").Replace("&", " ").Replace(" ", " ");if (data.Length > 75)
{
data = data.Substring(0, 75);
data = data.Substring(0, data.LastIndexOf(" "));
}

data= data.Replace(" ", "-").ToLower();
return data.Replace("ş", "s").Replace("Ş", "s").Replace("ç", "c").Replace("Ç", "c").Replace("ö", "o").Replace("Ö", "o").Replace("ü", "u").Replace("Ü", "u").Replace("İ", "i").Replace("ı", "i").Replace("ğ", "g").Replace("Ğ", "g");
}

C# Query Tek Tırnak Problemi

Eğer Query içerisinde kullanacağımız bir stringde  ” ‘ ” ( Tek tırnak ) karakteri bulunuyorsa bu queryimizin yapısını bozacak ve işlemi gerçekleştiremeyecektir.

Bu durumdan kaçınmak için gönderdiğimiz stringi mutlaka öncesinde kontrol etmemiz gerekli. Kontrolümüz ve yapmamız gerek şey oldukça basit, tek tırnak karakterlerinin hepsini iki adet tek tırnak ile replace etmek.

 

yazi = yazi.Replace(“‘”, “””);

 

String İçerisinde Tırnak İşareti ve Ters Eğik Çizgi (Backslash) Kullanabilmek

Stinglerimizde tırnak işareti ve backslash kullanabilmemiz için durumlara göre iki kez ya da başına @ işareti koyarak kullanmamız gerekebiliyor.

Tüm durumlar için birer örnek oluşturulmuş.


string a = "hello, world";                // hello, world
string b = @"hello, world";               // hello, world
string c = "hello \t world";              // hello world
string d = @"hello \t world";             // hello \t world
string e = "Joe said \"Hello\" to me";    // Joe said "Hello" to me
string f = @"Joe said ""Hello"" to me";   // Joe said "Hello" to me
string g = "\\\\server\\share\\file.txt"; // \\server\share\file.txt
string h = @"\\server\share\file.txt";    // \\server\share\file.txt