StringBuilder

Niyozbek Mirzayev

C# dasturlash tilida Stringga o'xshash StringBuilder tipi mavjud. Ular bir-biriga yaqin, lekin ma'lum farqlar ularni ajratib turadi.

Keling, StringBuilder qanday yaratilishi haqida bilib olaylik. Avallo, System.Text kutubxonasini chaqirishimiz lozim, shundan so'ng quyidagicha kod yoradamida StringBuilder e'lon qilinadi:

StringBuilder strB = new StringBuilder(); 

Endi esa asosiy qism, ya'ni String va StringBuilderning farqini ko'rib chiqamiz:

String bu immutable tip hissoblandi, ya'ni uni xotirada e'lon qilganimizdan so'ng uni o'zgartira olmaymiz, StringBuilder esa mutable tip hisoblandi, ya'ni u xotirada o'z ko'rinishni va o'lchamini o'zgartira oladi. Shu sababdan, StringBulider Stringdan tezroqdir.

Misol uchun, Quyidagi kodda str o'zgaruvchisi 1000 martta xotiradan o'chirib tashlanadi va har safar Salom so'zi qo'shilib qaytadan yaratiladi.

string str = "Salom";  
for (int i = 0; i < 1000; i++)  
{  
     str += "Salom ";  
}

Keling end shu misolni StringBuilder orqali ko'raylik:

    
StringBuilder strB = new StringBuilder(); 
for (int i = 0; i < 1000; i++)  
{  
     strB.Append("Salom ");  
}

str o'zgaruvchisida farqli ravishda strB o'zgaruvchisi xotirada 1000 marta o'chirilib tashlanmaydi, buning o'rniga strB o'zgaruvchising o'ziga 1000 martta Salom so'zi qo'shilib yoziladi.

Yuqorida ko'rganingizdek StringBuilderning ham String kabi o'z methodlari mavjut va quyida ulardan bir nechtasiga misolar keltirilgan:

  • Append - StringBuilderning oxiridan String qo'shish uchun ishlatiladi.

StringBuilder strB = new StringBuilder("Hello World!!");	
string str = " Yes ";
		
strB.Append(str); 
Console.WriteLine(strB); //output:   Hello World!! Yes 
  • AppendLine - Append funksiyasi kabi ishlaydi, lekin har bir Stringni yangi qatordan qo'shadi:

StringBuilder strB = new StringBuilder("Hello World!!");		
string str = " Yes ";
		
strB.AppendLine(str);
//output: Hello World!!
//				Yes
  • Remove -satrning ma'lum indexdan boshqa bir indexgacha bo'lgan qismini o'chiradi:

StringBuilder strB = new StringBuilder("Hello World!!");
strB.Remove(0, 11);

Console.WriteLine(strB); 
//output: !!
  • Replace - satrning ma'lum bir qismini boshqa bir satr bilan almashtiradi.

StringBuilder strB = new StringBuilder("Hello World!!");
strB.Replace("World", "C#");

Console.WriteLine(strB); 
//output: Hello C#!!
  • Clear - StringBuilder ichidagi barcha ma'lumotlarni o'chirish uchun ishlatiladi:

StringBuilder strB = new StringBuilder("Hello World!!");
Console.WriteLine(strB); //output: Hello World!!
strB.Clear();
Console.WriteLine(strB);  //ikkinchi qatorda hech nima chiqmaydi sababi malumotlar o'chirilgan					
  • Insert - Ma'lum bir berilgan indexdan boshlab String qo'shadi:

StringBuilder sb = new StringBuilder("Hello World!");
sb.Insert(5," C#"); 

Console.WriteLine(sb);  //output: Hello C# World!

Last updated