Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
String Nesne sabittir. sınıfındaki yöntemlerden birini her kullandığınızda, bellekte System.String yeni bir dize nesnesi oluşturursunuz ve bu da bu yeni nesne için yeni bir alan ayırma gerektirir. Bir dizede yinelenen değişiklikler yapmanız gereken durumlarda, yeni String nesne oluşturmayla ilişkili ek yük yüksek maliyetli olabilir. Sınıfı, System.Text.StringBuilder yeni bir nesne oluşturmadan bir dizeyi değiştirmek istediğinizde kullanılabilir. Örneğin, sınıfını StringBuilder kullanmak, bir döngüde birçok dizeyi birleştirirken performansı artırabilir.
System.Text Ad Alanını İçe Aktarma
StringBuilder sınıfı System.Text ad alanında bulunur. Tam tür adını kodunuzda sağlamak zorunda kalmamak için System.Text ad alanını içe aktarabilirsiniz.
using System;
using System.Text;
Imports System.Text
StringBuilder Nesnesi Başlatma
Aşağıdaki örnekte gösterildiği gibi, değişkeninizi aşırı yüklenmiş oluşturucu yöntemlerinden biriyle başlatarak sınıfının yeni bir örneğini StringBuilder oluşturabilirsiniz.
StringBuilder myStringBuilder = new StringBuilder("Hello World!");
Dim myStringBuilder As New StringBuilder("Hello World!")
Kapasite ve Uzunluğu Ayarlama
, kapsüllediğiniz dizedeki karakter sayısını genişletmenize olanak tanıyan dinamik bir nesne olsa StringBuilder da, tutabileceği karakter sayısı üst sınırı için bir değer belirtebilirsiniz. Bu değer nesnenin kapasitesi olarak adlandırılır ve geçerli StringBuilder olan dizenin uzunluğuyla karıştırılmamalıdır. Örneğin, uzunluğu 5 olan "Hello" dizesiyle sınıfının yeni bir örneğini StringBuilder oluşturabilir ve nesnenin en fazla 25 kapasiteye sahip olduğunu belirtebilirsiniz.
StringBuilder öğesini değiştirdiğinizde, kapasite dolana kadar boyutunu yeniden ayırmaz. Bu durum oluştuğunda, yeni alan otomatik olarak ayrılır ve kapasite iki katına çıkar. Aşırı yüklenmiş oluşturuculardan birini kullanarak sınıfın kapasitesini StringBuilder belirtebilirsiniz. Aşağıdaki örnek, nesnenin myStringBuilder
en fazla 25 alana genişletilebileceğini belirtir.
StringBuilder myStringBuilder = new StringBuilder("Hello World!", 25);
Dim myStringBuilder As New StringBuilder("Hello World!", 25)
Ayrıca, nesnenizin uzunluk üst sınırını ayarlamak için okuma/yazma Capacity özelliğini kullanabilirsiniz. Aşağıdaki örnek , maksimum nesne uzunluğunu tanımlamak için Capacity özelliğini kullanır.
myStringBuilder.Capacity = 25;
myStringBuilder.Capacity = 25
EnsureCapacity yöntemi geçerli StringBuilder'ın kapasitesini denetlemek için kullanılabilir. Kapasite geçirilen değerden büyükse hiçbir değişiklik yapılmaz; ancak kapasite geçirilen değerden küçükse geçerli kapasite geçirilen değerle eşleşecek şekilde değiştirilir.
Length özelliği de görüntülenebilir veya ayarlanabilir. Length özelliğini Capacity özelliğinden daha büyük bir değere ayarlarsanız Capacity özelliği otomatik olarak Length özelliğiyle aynı değere değiştirilir. Length özelliğini geçerli StringBuilder içindeki dizenin uzunluğundan küçük bir değere ayarlamak dizeyi kısaltır.
StringBuilder Dizesini Değiştirme
Aşağıdaki tabloda, StringBuilder'ın içeriğini değiştirmek için kullanabileceğiniz yöntemler listelenir.
Yöntem adı | Kullan |
---|---|
StringBuilder.Append | Mevcut StringBuilder'ın sonuna bilgileri ekler. |
StringBuilder.AppendFormat | Bir dizede geçirilen biçim belirticisini biçimlendirilmiş metinle değiştirir. |
StringBuilder.Insert | Geçerli StringBuilder'ın belirtilen dizinine bir dize veya nesne ekler. |
StringBuilder.Remove | Geçerli StringBuilder'dan belirtilen sayıda karakteri kaldırır. |
StringBuilder.Replace | Geçerli StringBuilder'da belirtilen bir karakterin veya dizenin tüm oluşumlarını belirtilen başka bir karakter veya dizeyle değiştirir. |
Ekle
Append yöntemi, geçerli StringBuilder tarafından temsil edilen bir dizenin sonuna bir nesnenin metin veya dize gösterimi eklemek için kullanılabilir. Aşağıdaki örnek, "Hello World" için bir StringBuilder başlatır ve nesnenin sonuna bir metin ekler. Alan gerektiğinde otomatik olarak ayrılır.
StringBuilder myStringBuilder = new StringBuilder("Hello World!");
myStringBuilder.Append(" What a beautiful day.");
Console.WriteLine(myStringBuilder);
// The example displays the following output:
// Hello World! What a beautiful day.
Dim myStringBuilder As New StringBuilder("Hello World!")
myStringBuilder.Append(" What a beautiful day.")
Console.WriteLine(myStringBuilder)
' The example displays the following output:
' Hello World! What a beautiful day.
Biçim Ekle
StringBuilder.AppendFormat yöntemi, nesnenin sonuna StringBuilder metin ekler. Biçimlendirilecek nesne veya nesnelerin uygulamasını çağırarak IFormattable destekler. Bu nedenle, sayısal, tarih ve saat ve numaralandırma değerleri için standart biçim dizelerini, sayısal ve tarih ve saat değerleri için özel biçim dizelerini ve özel türler için tanımlanan biçim dizelerini kabul eder. (Biçimlendirme hakkında bilgi için bkz . Biçimlendirme Türleri.) Değişkenlerin biçimini özelleştirmek ve bu değerleri bir StringBuilderöğesine eklemek için bu yöntemi kullanabilirsiniz. Aşağıdaki örnek, bir nesnenin AppendFormat sonuna StringBuilder para birimi değeri olarak biçimlendirilmiş bir tamsayı değeri yerleştirmek için yöntemini kullanır.
int MyInt = 25;
StringBuilder myStringBuilder = new StringBuilder("Your total is ");
myStringBuilder.AppendFormat("{0:C} ", MyInt);
Console.WriteLine(myStringBuilder);
// The example displays the following output:
// Your total is $25.00
Dim MyInt As Integer = 25
Dim myStringBuilder As New StringBuilder("Your total is ")
myStringBuilder.AppendFormat("{0:C} ", MyInt)
Console.WriteLine(myStringBuilder)
' The example displays the following output:
' Your total is $25.00
Yerleştir
yöntemi geçerli InsertStringBuilder nesnede belirtilen konuma bir dize veya nesne ekler. Aşağıdaki örnek, bir nesnenin altıncı konumuna StringBuilder bir sözcük eklemek için bu yöntemi kullanır.
StringBuilder myStringBuilder = new StringBuilder("Hello World!");
myStringBuilder.Insert(6,"Beautiful ");
Console.WriteLine(myStringBuilder);
// The example displays the following output:
// Hello Beautiful World!
Dim myStringBuilder As New StringBuilder("Hello World!")
myStringBuilder.Insert(6, "Beautiful ")
Console.WriteLine(myStringBuilder)
' The example displays the following output:
' Hello Beautiful World!
Kaldır
GeçerliStringBuilder nesneden belirtilen sayıda karakteri, belirtilen sıfır tabanlı dizinden başlayarak kaldırmak için Remove yöntemini kullanabilirsiniz. Aşağıdaki örnek, bir nesneyi kısaltmak için StringBuilder yöntemini kullanır.
StringBuilder myStringBuilder = new StringBuilder("Hello World!");
myStringBuilder.Remove(5,7);
Console.WriteLine(myStringBuilder);
// The example displays the following output:
// Hello
Dim myStringBuilder As New StringBuilder("Hello World!")
myStringBuilder.Remove(5, 7)
Console.WriteLine(myStringBuilder)
' The example displays the following output:
' Hello
Değiştir
Replace yöntemi, nesne içindeki StringBuilder karakterleri belirtilen başka bir karakterle değiştirmek için kullanılabilir. Aşağıdaki örnek , bir StringBuilder nesnede ünlem işareti karakterinin (!) tüm örneklerini aramak ve bunları soru işareti karakteri (?) ile değiştirmek için Replace yöntemini kullanır.
StringBuilder myStringBuilder = new StringBuilder("Hello World!");
myStringBuilder.Replace('!', '?');
Console.WriteLine(myStringBuilder);
// The example displays the following output:
// Hello World?
Dim myStringBuilder As New StringBuilder("Hello World!")
myStringBuilder.Replace("!"c, "?"c)
Console.WriteLine(myStringBuilder)
' The example displays the following output:
' Hello World?
StringBuilder Nesnesini Dizeye Dönüştürme
Nesnesi tarafından StringBuilderString temsil edilen dizeyi parametresi olan bir StringBuilder yönteme geçirebilmeniz veya kullanıcı arabiriminde görüntüleyebilmeniz için önce nesneyi bir String nesneye dönüştürmeniz gerekir. StringBuilder.ToString metodunu çağırarak bu dönüştürmeyi yaparsınız. Aşağıdaki örnek bir dizi StringBuilder yöntemi çağırır ve ardından dizeyi StringBuilder.ToString() görüntülemek için yöntemini çağırır.
using System;
using System.Text;
public class Example
{
public static void Main()
{
StringBuilder sb = new StringBuilder();
bool flag = true;
string[] spellings = { "recieve", "receeve", "receive" };
sb.AppendFormat("Which of the following spellings is {0}:", flag);
sb.AppendLine();
for (int ctr = 0; ctr <= spellings.GetUpperBound(0); ctr++) {
sb.AppendFormat(" {0}. {1}", ctr, spellings[ctr]);
sb.AppendLine();
}
sb.AppendLine();
Console.WriteLine(sb.ToString());
}
}
// The example displays the following output:
// Which of the following spellings is True:
// 0. recieve
// 1. receeve
// 2. receive
Imports System.Text
Module Example
Public Sub Main()
Dim sb As New StringBuilder()
Dim flag As Boolean = True
Dim spellings() As String = {"recieve", "receeve", "receive"}
sb.AppendFormat("Which of the following spellings is {0}:", flag)
sb.AppendLine()
For ctr As Integer = 0 To spellings.GetUpperBound(0)
sb.AppendFormat(" {0}. {1}", ctr, spellings(ctr))
sb.AppendLine()
Next
sb.AppendLine()
Console.WriteLine(sb.ToString())
End Sub
End Module
' The example displays the following output:
' Which of the following spellings is True:
' 0. recieve
' 1. receeve
' 2. receive