.NET'te dizeleri karşılaştırma

.NET, dizelerin değerlerini karşılaştırmak için çeşitli yöntemler sağlar. Aşağıdaki tabloda değer karşılaştırma yöntemleri listelenip açıklanmaktadır.

Yöntem adı Kullanma
String.Compare İki dizenin değerlerini karşılaştırır. Bir tamsayı değeri döndürür.
String.CompareOrdinal Yerel kültüre bakılmaksızın iki dizeyi karşılaştırır. Bir tamsayı değeri döndürür.
String.CompareTo Geçerli dize nesnesini başka bir dizeyle karşılaştırır. Bir tamsayı değeri döndürür.
String.StartsWith Bir dizenin geçirilen dizeyle başlayıp başlamayacağını belirler. Boole değeri döndürür.
String.EndsWith Dizenin dize geçirilirken bitip bitmeyeceğini belirler. Boole değeri döndürür.
String.Contains Bir karakterin veya dizenin başka bir dize içinde olup olmadığını belirler. Boole değeri döndürür.
String.Equals İki dizenin aynı olup olmadığını belirler. Boole değeri döndürür.
String.IndexOf Bir karakterin veya dizenin dizin konumunu, incelediğiniz dizenin başından başlayarak döndürür. Bir tamsayı değeri döndürür.
String.LastIndexOf Bir karakterin veya dizenin dizin konumunu, incelediğiniz dizenin sonundan başlayarak döndürür. Bir tamsayı değeri döndürür.

Compare Yöntem

Statik String.Compare yöntem, iki dizeyi karşılaştırmak için kapsamlı bir yol sağlar. Bu yöntem kültürel olarak farkındadır. İki dizenin iki dizesini veya alt dizesini karşılaştırmak için bu işlevi kullanabilirsiniz. Ayrıca, büyük/küçük harf ve kültürel varyansı dikkate almayan veya göz ardı eden aşırı yüklemeler sağlanır. Aşağıdaki tabloda, bu yöntemin döndürebileceği üç tamsayı değeri gösterilmektedir.

Dönüş değeri Koşul
Negatif bir tamsayı İlk dize, sıralama düzenindeki ikinci dizeden öncedir.

-veya-

İlk dize şeklindedir null.
0 İlk dize ve ikinci dize eşittir.

-veya-

Her iki dize de şeklindedir null.
Pozitif bir tamsayı

-veya-

1
İlk dize, sıralama düzenindeki ikinci dizeyi izler.

-veya-

İkinci dize ise şeklindedir null.

Önemli

String.Compare yöntemi öncelikle dizeleri sıralarken veya sıralarken kullanılmak üzere tasarlanmıştır. Eşitliği test etmek için yöntemini kullanmamalısınız String.Compare (başka bir deyişle, bir dizenin diğerinden küçük veya daha büyük olup olmadığına bakılmaksızın açıkça 0 dönüş değerini aramak için). Bunun yerine, iki dizenin eşit olup olmadığını belirlemek için yöntemini kullanın String.Equals(String, String, StringComparison) .

Aşağıdaki örnek, iki dizenin String.Compare göreli değerlerini belirlemek için yöntemini kullanır.

String^ string1 = "Hello World!";
Console::WriteLine(String::Compare(string1, "Hello World?"));
string string1 = "Hello World!";
Console.WriteLine(String.Compare(string1, "Hello World?"));
Dim string1 As String = "Hello World!"
Console.WriteLine(String.Compare(string1, "Hello World?"))

Bu örnek konsolda görüntülenir -1 .

Yukarıdaki örnek varsayılan olarak kültüre duyarlıdır. Kültüre duyarsız dize karşılaştırması gerçekleştirmek için, bir kültür parametresi sağlayarak kullanılacak kültürü belirtmenize olanak tanıyan yönteminin aşırı yüklemesini String.Compare kullanın. Kültüre duyarsız bir karşılaştırma yapmak için yönteminin nasıl kullanılacağını String.Compare gösteren bir örnek için bkz . Kültüre duyarsız dize karşılaştırmaları.

CompareOrdinal Yöntem

yöntemi, String.CompareOrdinal yerel kültürü dikkate almadan iki dize nesnesini karşılaştırır. Bu yöntemin dönüş değerleri, önceki tabloda yöntemi tarafından Compare döndürülen değerlerle aynıdır.

Önemli

String.CompareOrdinal yöntemi öncelikle dizeleri sıralarken veya sıralarken kullanılmak üzere tasarlanmıştır. Eşitliği test etmek için yöntemini kullanmamalısınız String.CompareOrdinal (başka bir deyişle, bir dizenin diğerinden küçük veya daha büyük olup olmadığına bakılmaksızın açıkça 0 dönüş değerini aramak için). Bunun yerine, iki dizenin eşit olup olmadığını belirlemek için yöntemini kullanın String.Equals(String, String, StringComparison) .

Aşağıdaki örnek, iki dizenin değerlerini karşılaştırmak için yöntemini kullanır CompareOrdinal .

String^ string1 = "Hello World!";
Console::WriteLine(String::CompareOrdinal(string1, "hello world!"));
string string1 = "Hello World!";
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"));
Dim string1 As String = "Hello World!"
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"))

Bu örnek konsolda görüntülenir -32 .

CompareTo Yöntem

yöntemi, String.CompareTo geçerli dize nesnesinin kapsüllediğini dizeyi başka bir dize veya nesneyle karşılaştırır. Bu yöntemin dönüş değerleri, önceki tabloda yöntemi tarafından String.Compare döndürülen değerlerle aynıdır.

Önemli

String.CompareTo yöntemi öncelikle dizeleri sıralarken veya sıralarken kullanılmak üzere tasarlanmıştır. Eşitliği test etmek için yöntemini kullanmamalısınız String.CompareTo (başka bir deyişle, bir dizenin diğerinden küçük veya daha büyük olup olmadığına bakılmaksızın açıkça 0 dönüş değerini aramak için). Bunun yerine, iki dizenin eşit olup olmadığını belirlemek için yöntemini kullanın String.Equals(String, String, StringComparison) .

Aşağıdaki örnek, nesnesini nesnesiyle String.CompareTo karşılaştırmak string1 için string2 yöntemini kullanır.

String^ string1 = "Hello World";
String^ string2 = "Hello World!";
int MyInt = string1->CompareTo(string2);
Console::WriteLine( MyInt );
string string1 = "Hello World";
string string2 = "Hello World!";
int MyInt = string1.CompareTo(string2);
Console.WriteLine( MyInt );
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World!"
Dim MyInt As Integer = string1.CompareTo(string2)
Console.WriteLine(MyInt)

Bu örnek konsolda görüntülenir -1 .

yönteminin String.CompareTo tüm aşırı yüklemeleri varsayılan olarak kültüre duyarlı ve büyük/küçük harfe duyarlı karşılaştırmalar yapar. Kültüre duyarsız bir karşılaştırma gerçekleştirmenize olanak sağlayan bu yöntemin aşırı yüklemesi sağlanmadı. Kod netliği için, bunun yerine kültüre duyarlı işlemleri veya CultureInfo.InvariantCulture kültüre duyarsız işlemleri belirterek CultureInfo.CurrentCulture yöntemini kullanmanızı String.Compare öneririz. Hem kültüre duyarlı hem de kültüre duyarsız karşılaştırmalar yapmak için yönteminin nasıl kullanılacağını String.Compare gösteren örnekler için bkz . Kültüre Duyarsız Dize Karşılaştırmaları Gerçekleştirme.

Equals Yöntem

yöntemi, String.Equals iki dizenin aynı olup olmadığını kolayca belirleyebilir. Bu büyük/küçük harfe duyarlı yöntem bir true veya false Boole değeri döndürür. Bir sonraki örnekte gösterildiği gibi mevcut bir sınıftan kullanılabilir. Aşağıdaki örnek, bir dize nesnesinin Equals "Merhaba Dünya" tümceciği içerip içermediğini belirlemek için yöntemini kullanır.

String^ string1 = "Hello World";
Console::WriteLine(string1->Equals("Hello World"));
string string1 = "Hello World";
Console.WriteLine(string1.Equals("Hello World"));
Dim string1 As String = "Hello World"
Console.WriteLine(string1.Equals("Hello World"))

Bu örnek konsolda görüntülenir True .

Bu yöntem statik bir yöntem olarak da kullanılabilir. Aşağıdaki örnek, statik bir yöntem kullanarak iki dize nesnesini karşılaştırır.

String^ string1 = "Hello World";
String^ string2 = "Hello World";
Console::WriteLine(String::Equals(string1, string2));
string string1 = "Hello World";
string string2 = "Hello World";
Console.WriteLine(String.Equals(string1, string2));
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World"
Console.WriteLine(String.Equals(string1, string2))

Bu örnek konsolda görüntülenir True .

StartsWith ve EndsWith yöntemleri

Bir dize nesnesinin başka bir dizeyi String.StartsWith kapsayan aynı karakterlerle başlayıp başlamayacağını belirlemek için yöntemini kullanabilirsiniz. Bu büyük/küçük harfe duyarlı yöntem, geçerli dize nesnesi geçirilen dizeyle başlıyorsa ve false başlamıyorsa döndürürtrue. Aşağıdaki örnek, bir dize nesnesinin "Hello" ile başip başlamadığını belirlemek için bu yöntemi kullanır.

String^ string1 = "Hello World";
Console::WriteLine(string1->StartsWith("Hello"));
string string1 = "Hello World";
Console.WriteLine(string1.StartsWith("Hello"));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.StartsWith("Hello"))

Bu örnek konsolda görüntülenir True .

yöntemi, String.EndsWith geçirilen bir dizeyi geçerli dize nesnesinin sonunda bulunan karakterlerle karşılaştırır. Ayrıca bir Boole değeri döndürür. Aşağıdaki örnek, yöntemini kullanarak EndsWith bir dizenin sonunu denetler.

String^ string1 = "Hello World";
Console::WriteLine(string1->EndsWith("Hello"));
string string1 = "Hello World";
Console.WriteLine(string1.EndsWith("Hello"));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.EndsWith("Hello"))

Bu örnek konsolda görüntülenir False .

IndexOf ve LastIndexOf yöntemleri

Bir dize içinde String.IndexOf belirli bir karakterin ilk oluşumunun konumunu belirlemek için yöntemini kullanabilirsiniz. Bu büyük/küçük harfe duyarlı yöntem, dizenin başından itibaren saymaya başlar ve sıfır tabanlı dizin kullanarak geçirilen bir karakterin konumunu döndürür. Karakter bulunamazsa , –1 değeri döndürülür.

Aşağıdaki örnek, bir dizedeki IndexOf 'l' karakterinin ilk oluşumunu aramak için yöntemini kullanır.

String^ string1 = "Hello World";
Console::WriteLine(string1->IndexOf('l'));
string string1 = "Hello World";
Console.WriteLine(string1.IndexOf('l'));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.IndexOf("l"))

Bu örnek konsolda görüntülenir 2 .

String.LastIndexOf yöntemi, bir dize içindeki belirli bir karakterin son oluşumunun konumunu döndürmesi dışında yöntemine benzerString.IndexOf. Büyük/küçük harfe duyarlıdır ve sıfır tabanlı bir dizin kullanır.

Aşağıdaki örnek, bir dizedeki LastIndexOf 'l' karakterinin son oluşumunu aramak için yöntemini kullanır.

String^ string1 = "Hello World";
Console::WriteLine(string1->LastIndexOf('l'));
string string1 = "Hello World";
Console.WriteLine(string1.LastIndexOf('l'));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.LastIndexOf("l"))

Bu örnek konsolda görüntülenir 9 .

Her iki yöntem de yöntemiyle String.Remove birlikte kullanıldığında kullanışlıdır. Bir karakterin IndexOf konumunu almak için veya LastIndexOf yöntemlerini kullanabilir ve ardından bir karakteri veya bu karakterle başlayan bir sözcüğü kaldırmak için bu konumu Remove yönteme sağlayabilirsiniz.

Ayrıca bkz.