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
- Praktik terbaik untuk menggunakan string di .NET
- Operasi String Dasar
- Melakukan operasi string yang tidak peka budaya
- Menyortir tabel berat - digunakan oleh .NET Framework dan .NET Core 1.0-3.1 pada Windows
- Tabel elemen kolabasi Unicode default - digunakan oleh .NET 5 di semua platform, dan oleh .NET Core di Linux dan macOS