Bagikan melalui


Membandingkan string di .NET

.NET menyediakan beberapa metode untuk membandingkan nilai string. Tabel berikut ini mencantumkan dan menjelaskan metode perbandingan nilai.

Nama metode Menggunakan
String.Compare Membandingkan nilai dua string. Mengembalikan nilai bilangan bulat.
String.CompareOrdinal Membandingkan dua string tanpa memperhatikan budaya lokal. Mengembalikan nilai bilangan bulat.
String.CompareTo Membandingkan objek string saat ini dengan string lain. Mengembalikan nilai bilangan bulat.
String.StartsWith Menentukan apakah string dimulai dengan string yang dilewatkan. Mengembalikan nilai Boolean.
String.EndsWith Menentukan apakah string berakhir dengan string yang diteruskan. Mengembalikan nilai Boolean.
String.Contains Menentukan apakah karakter atau string terjadi dalam string lain. Mengembalikan nilai Boolean.
String.Equals Menentukan apakah dua string sama. Mengembalikan nilai Boolean.
String.IndexOf Mengembalikan posisi indeks karakter atau string, dimulai dari awal string yang Anda periksa. Mengembalikan nilai bilangan bulat.
String.LastIndexOf Mengembalikan posisi indeks karakter atau string, dimulai dari awal string yang Anda periksa. Mengembalikan nilai bilangan bulat.

metode Compare

Metode statis String.Compare menyediakan cara menyeluruh untuk membandingkan dua string. Metode ini sadar budaya. Anda dapat menggunakan fungsi ini untuk membandingkan dua string atau substring dari dua string. Selain itu, overload disediakan yang memperhatikan atau mengabaikan kasus dan varian budaya. Tabel berikut ini memperlihatkan tiga nilai bilangan bulat yang mungkin dikembalikan oleh metode ini.

Nilai hasil Kondisi
Bilangan bulat negatif String pertama mendahului string kedua dalam urutan sortir.

-atau-

String pertama adalah null.
0 String pertama dan string kedua sama.

-atau-

Kedua string adalah null.
Bilangan bulat positif

-atau-

1
String pertama mendahului string kedua dalam urutan sortir.

-atau-

String kedua adalah null.

Penting

Metode String.Compare terutama ditujukan untuk digunakan saat mengurutkan atau mengurutkan string. Anda tidak boleh menggunakan metode String.Compare untuk menguji kesetaraan (yaitu, secara eksplisit mencari nilai pengembalian 0 tanpa memperhatikan apakah satu string kurang dari atau lebih besar dari yang lain). Sebagai gantinya, untuk menentukan apakah dua string sama, gunakan metode String.Equals(String, String, StringComparison).

Contoh berikut menggunakan metode String.Compare untuk menentukan nilai relatif dari dua string.

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?"))

Contoh ini menampilkan -1 ke konsol.

Contoh sebelumnya sensitif terhadap budaya secara default. Untuk melakukan perbandingan string yang tidak sensitif terhadap budaya, gunakan overload dari metode String.Compare yang memungkinkan Anda menentukan budaya yang akan digunakan dengan menyediakan parameter budaya. Misalnya yang menunjukkan cara menggunakan metode String.Compare untuk melakukan perbandingan budaya yang tidak sensitif, lihat Perbandingan string yang tidak sensitif budaya.

metode CompareOrdinal

Metode String.CompareOrdinal membandingkan dua objek string tanpa mempertimbangkan budaya lokal. Nilai yang dikembalikan dari metode ini identik dengan nilai yang dikembalikan oleh metode Compare dalam tabel sebelumnya.

Penting

Metode String.CompareOrdinal terutama ditujukan untuk digunakan saat mengurutkan atau mengurutkan string. Anda tidak boleh menggunakan metode String.CompareOrdinal untuk menguji kesetaraan (yaitu, secara eksplisit mencari nilai pengembalian 0 tanpa memperhatikan apakah satu string kurang dari atau lebih besar dari yang lain). Sebagai gantinya, untuk menentukan apakah dua string sama, gunakan metode String.Equals(String, String, StringComparison).

Contoh berikut menggunakan CompareOrdinal metode untuk membandingkan nilai dua string.

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!"))

Contoh ini menampilkan -32 ke konsol.

metode CompareTo

Metode String.CompareTo membandingkan string yang dienkapsulasi objek string saat ini dengan string atau objek lain. Nilai yang dikembalikan dari metode ini identik dengan nilai yang dikembalikan oleh metode String.Compare dalam tabel sebelumnya.

Penting

Metode String.CompareTo terutama ditujukan untuk digunakan saat mengurutkan atau mengurutkan string. Anda tidak boleh menggunakan metode String.CompareTo untuk menguji kesetaraan (yaitu, secara eksplisit mencari nilai pengembalian 0 tanpa memperhatikan apakah satu string kurang dari atau lebih besar dari yang lain). Sebagai gantinya, untuk menentukan apakah dua string sama, gunakan metode String.Equals(String, String, StringComparison).

Contoh berikut menggunakan metode String.CompareTo untuk membandingkan objek string1 dengan objek string2.

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)

Contoh ini menampilkan -1 ke konsol.

Semua overload metode String.CompareTo melakukan perbandingan peka budaya dan peka huruf besar/kecil secara default. Tidak ada overload metode ini yang disediakan yang memungkinkan Anda melakukan perbandingan budaya yang tidak sensitif. Untuk kejelasan kode, kami sarankan Anda menggunakan metode String.Compare sebagai gantinya, menentukan CultureInfo.CurrentCulture untuk operasi yang sensitif terhadap budaya atau CultureInfo.InvariantCulture untuk operasi yang tidak sensitif terhadap budaya. Untuk contoh yang menunjukkan cara menggunakan metode String.Compare untuk melakukan perbandingan yang sensitif terhadap budaya dan budaya tidak sensitif, lihat Melakukan perbandingan String Culture-Insensitive.

metode Equals

Metode String.Equals dapat dengan mudah menentukan apakah dua string sama. Metode peka huruf besar/kecil ini mengembalikan nilai Boolean true atau false. Ini dapat digunakan dari kelas yang ada, seperti yang diilustrasikan dalam contoh berikutnya. Contoh berikut menggunakan metode Equals untuk menentukan apakah objek string berisi frasa "Halo Dunia".

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"))

Contoh ini menampilkan True ke konsol.

Metode ini juga dapat digunakan sebagai metode statis. Contoh berikut membandingkan dua objek string menggunakan metode statis.

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))

Contoh ini menampilkan True ke konsol.

Metode StartsWith dan EndsWith

Anda dapat menggunakan metode String.StartsWith untuk menentukan apakah objek string dimulai dengan karakter yang sama yang mencakup string lain. Metode peka huruf besar/kecil ini mengembalikan true jika objek string saat ini dimulai dengan string yang diteruskan dan false jika tidak. Contoh berikut menggunakan metode ini untuk menentukan apakah objek string dimulai dengan "Halo".

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"))

Contoh ini menampilkan True ke konsol.

Metode String.EndsWith membandingkan string yang diteruskan dengan karakter yang ada di akhir objek string saat ini. Ini juga mengembalikan nilai Boolean. Contoh berikut memeriksa akhir string menggunakan metode EndsWith.

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"))

Contoh ini menampilkan False ke konsol.

Metode IndexOf dan LastIndexOf

Anda dapat menggunakan metode String.IndexOf untuk menentukan posisi kemunculan pertama karakter tertentu dalam string. Metode peka huruf besar/kecil ini mulai dihitung dari awal string dan mengembalikan posisi karakter yang diteruskan menggunakan indeks berbasis nol. Jika karakter tidak dapat ditemukan, nilai –1 dikembalikan.

Contoh berikut menggunakan metode IndexOf untuk mencari kemunculan pertama karakter 'l' dalam string.

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"))

Contoh ini menampilkan 2 ke konsol.

Metode String.LastIndexOf ini mirip dengan metode String.IndexOf kecuali bahwa metode mengembalikan posisi kemunculan terakhir karakter tertentu dalam string. Ini peka huruf besar/kecil dan menggunakan indeks berbasis nol.

Contoh berikut menggunakan metode LastIndexOf untuk mencari kemunculan pertama karakter 'l' dalam string.

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"))

Contoh ini menampilkan 9 ke konsol.

Kedua metode berguna saat digunakan bersama dengan metode String.Remove. Anda dapat menggunakan metode IndexOf atau LastIndexOf untuk mengambil posisi karakter, lalu menyediakan posisi tersebut ke metode Remove untuk menghapus karakter atau kata yang dimulai dengan karakter tersebut.

Lihat juga