Bagikan melalui


Membandingkan string di .NET

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

Nama metode Gunakan
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 diteruskan. Mengembalikan nilai Boolean.
String.EndsWith Menentukan apakah sebuah string berakhir dengan string yang diberikan. 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, mulai dari akhir string yang Anda periksa. Mengembalikan nilai bilangan bulat.

metode Compare

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

Mengembalikan nilai Keadaan
Bilangan bulat negatif String pertama mendahului string kedua dalam urutan pengurutan.

-atau-

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

-atau-

Kedua string adalah null.
Bilangan bulat positif

-atau-

1
String pertama mengikuti string kedua dalam urutan pengurutan.

-atau-

String kedua adalah null.

Penting

Metode String.Compare ini terutama ditujukan untuk digunakan saat menyusun atau mengurutkan string. Anda tidak boleh menggunakan String.Compare metode 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 String.Compare metode untuk menentukan nilai relatif dari dua string.

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 di konsol.

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

metode CompareOrdinal

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

Penting

Metode String.CompareOrdinal ini terutama ditujukan untuk digunakan saat menyusun atau mengurutkan string. Anda tidak boleh menggunakan String.CompareOrdinal metode 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!"));
Dim string1 As String = "Hello World!"
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"))

Contoh ini menampilkan -32 di konsol.

metode CompareTo

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

Penting

Metode String.CompareTo ini terutama ditujukan untuk digunakan saat menyusun atau mengurutkan string. Anda tidak boleh menggunakan String.CompareTo metode 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 );
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 di konsol.

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

metode Equals

Metode ini 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 Equals metode untuk menentukan apakah objek string berisi frasa "Halo Dunia".

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 di 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));
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World"
Console.WriteLine(String.Equals(string1, string2))

Contoh ini menampilkan True di konsol.

metode StartsWith dan EndsWith

Anda dapat menggunakan String.StartsWith metode untuk menentukan apakah objek string dimulai dengan karakter yang sama yang mencakup string lain. Metode sensitif terhadap huruf besar/kecil ini mengembalikan true jika objek string ini diawali oleh string yang diberikan dan false jika tidak. Contoh berikut menggunakan metode ini untuk menentukan apakah objek string dimulai dengan "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 di konsol.

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

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

Contoh ini menampilkan False di konsol.

metode IndexOf dan LastIndexOf

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

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

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

Contoh ini menampilkan 2 di konsol.

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

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

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

Contoh ini menampilkan 9 di konsol.

Kedua metode berguna ketika digunakan bersama dengan String.Remove metode . 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