Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Halaman Bantuan ini membahas bagaimana Visual Basic menggunakan informasi budaya untuk melakukan konversi dan perbandingan string.
Kapan Menggunakan String Culture-Specific
Biasanya, Anda harus menggunakan string yang sesuai dengan budaya untuk semua data yang disajikan kepada dan dibaca oleh pengguna, serta menggunakan string yang invarian budaya untuk data internal aplikasi Anda.
Misalnya, jika aplikasi Anda meminta pengguna untuk memasukkan tanggal sebagai string, seharusnya pengguna memformat string sesuai dengan budaya mereka, dan aplikasi harus mengonversi string dengan tepat. Jika aplikasi Anda kemudian menyajikan tanggal tersebut di antarmuka penggunanya, aplikasi tersebut harus menyajikannya dalam budaya pengguna.
Namun, jika aplikasi mengunggah tanggal ke server pusat, aplikasi harus memformat string sesuai dengan satu budaya tertentu, untuk mencegah kebingungan antara format tanggal yang berpotensi berbeda.
Culture-Sensitive Fungsi
Semua fungsi konversi string Visual Basic (kecuali untuk Str fungsi dan Val ) menggunakan informasi budaya aplikasi untuk memastikan bahwa konversi dan perbandingan sesuai untuk budaya pengguna aplikasi.
Kunci untuk berhasil menggunakan fungsi konversi string dalam aplikasi yang berjalan di komputer dengan pengaturan budaya yang berbeda adalah memahami fungsi mana yang menggunakan pengaturan budaya tertentu, dan yang menggunakan pengaturan budaya saat ini. Perhatikan bahwa pengaturan budaya aplikasi adalah, secara default, diwarisi dari pengaturan budaya sistem operasi. Untuk informasi selengkapnya, lihat Asc, , AscWChr, ChrW, Format, Hex, Oct, dan Fungsi Konversi Jenis.
Fungsi Str (mengonversi angka menjadi string) dan Val (mengonversi string menjadi angka) tidak menggunakan informasi budaya aplikasi saat mengonversi antara string dan angka. Sebaliknya, mereka hanya mengenali periode (.) sebagai pemisah desimal yang valid. Analog yang sadar budaya dari fungsi-fungsi ini adalah:
Konversi yang menggunakan budaya saat ini. Fungsi
CStrdanFormatmengonversi angka menjadi string, danCDblfungsi danCIntmengonversi string menjadi angka.Konversi yang menggunakan budaya tertentu. Setiap objek angka memiliki
ToString(IFormatProvider)metode yang mengonversi angka menjadi string, danParse(String, IFormatProvider)metode yang mengonversi string menjadi angka. Misalnya, jenisDoublemenyediakan metode ToString(IFormatProvider) dan Parse(String, IFormatProvider).
Untuk informasi lebih lanjut, lihat Str dan Val.
Menggunakan Budaya Tertentu
Bayangkan Anda mengembangkan aplikasi yang mengirim tanggal (diformat sebagai string) ke layanan Web. Dalam hal ini, aplikasi Anda harus menggunakan budaya tertentu untuk konversi string. Untuk mengilustrasikan alasannya, pertimbangkan hasil penggunaan metode tanggal ToString() : Jika aplikasi Anda menggunakan metode tersebut untuk memformat tanggal 4 Juli, 2005, itu mengembalikan "7/4/2005 12:00:00 AM" ketika dijalankan dengan budaya Inggris Amerika Serikat (en-US), tetapi mengembalikan "04.07.2005 00:00:00" ketika dijalankan dengan budaya Jerman (de-DE).
Ketika Anda perlu melakukan konversi string dalam format budaya tertentu, Anda harus menggunakan CultureInfo kelas yang dibangun ke dalam .NET Framework. Anda dapat membuat objek baru CultureInfo untuk budaya tertentu dengan meneruskan nama budaya ke CultureInfo konstruktor. Nama budaya yang didukung tercantum di halaman Bantuan untuk kelas CultureInfo.
Sebagai alternatif, Anda dapat memperoleh instance dari budaya invarian melalui properti CultureInfo.InvariantCulture. Budaya invarian didasarkan pada budaya Inggris, tetapi ada beberapa perbedaan. Misalnya, budaya invarian menentukan jam 24 jam alih-alih jam 12 jam.
Untuk mengonversi tanggal ke string budaya tersebut, berikan objek CultureInfo ke metode ToString(IFormatProvider) dari objek tanggal. Misalnya, kode berikut menampilkan "07/04/2005 00:00:00", terlepas dari pengaturan budaya aplikasi.
Dim d As Date = #7/4/2005#
MsgBox(d.ToString(System.Globalization.CultureInfo.InvariantCulture))
Nota
Literal tanggal selalu ditafsirkan sesuai dengan budaya bahasa Inggris.
Membandingkan String
Ada dua situasi penting di mana perbandingan string diperlukan:
Mengurutkan data untuk ditampilkan kepada pengguna. Gunakan operasi berdasarkan budaya saat ini sehingga string diurutkan dengan tepat.
Menentukan apakah dua string aplikasi-internal sama persis (biasanya untuk tujuan keamanan). Gunakan operasi yang mengabaikan budaya saat ini.
Anda dapat melakukan kedua jenis perbandingan dengan fungsi Visual Basic StrComp . Tentukan argumen opsional Compare untuk mengontrol jenis perbandingan: Text untuk sebagian besar input dan output Binary untuk menentukan kecocokan yang tepat.
Fungsi mengembalikan StrComp bilangan bulat yang menunjukkan hubungan antara dua string yang dibandingkan berdasarkan urutan pengurutan. Nilai positif untuk hasil menunjukkan bahwa string pertama lebih besar dari string kedua. Hasil negatif menunjukkan string pertama lebih kecil, dan nol menunjukkan kesetaraan antara string.
' Defines variables.
Dim testStr1 As String = "ABCD"
Dim testStr2 As String = "abcd"
Dim testComp As Integer
' The two strings sort equally. Returns 0.
testComp = StrComp(testStr1, testStr2, CompareMethod.Text)
' testStr1 sorts before testStr2. Returns -1.
testComp = StrComp(testStr1, testStr2, CompareMethod.Binary)
' testStr2 sorts after testStr1. Returns 1.
testComp = StrComp(testStr2, testStr1, CompareMethod.Binary)
Anda juga dapat menggunakan mitra .NET Framework dari fungsi StrComp, yaitu metode String.Compare. Ini adalah metode statis yang kelebihan beban dari kelas string dasar. Contoh berikut menggambarkan bagaimana metode ini digunakan:
Dim myString As String = "Alphabetical"
Dim secondString As String = "Order"
Dim result As Integer
result = String.Compare(myString, secondString)
Untuk kontrol yang lebih baik atas bagaimana perbandingan dilakukan, Anda dapat menggunakan overload tambahan dari metode Compare. Dengan metode , String.Compare Anda dapat menggunakan comparisonType argumen untuk menentukan jenis perbandingan mana yang akan digunakan.
Nilai dari comparisonType argumen |
Jenis perbandingan | Kapan harus menggunakan |
|---|---|---|
Ordinal |
Perbandingan berdasarkan byte komponen string. | Gunakan nilai ini saat membandingkan: pengidentifikasi peka huruf besar/kecil, pengaturan terkait keamanan, atau pengidentifikasi nonbahasa lainnya di mana byte harus sama persis. |
OrdinalIgnoreCase |
Perbandingan berdasarkan byte komponen string.OrdinalIgnoreCase menggunakan informasi budaya invarian untuk menentukan kapan dua karakter hanya berbeda dalam kapitalisasi. |
Gunakan nilai ini saat membandingkan: pengidentifikasi yang tidak peka terhadap huruf besar/kecil, pengaturan keamanan, dan data yang disimpan di Windows. |
CurrentCulture atau CurrentCultureIgnoreCase |
Perbandingan berdasarkan interpretasi string dalam budaya saat ini. | Gunakan nilai-nilai ini saat membandingkan: data yang ditampilkan kepada pengguna, sebagian besar input pengguna, dan data lain yang memerlukan interpretasi linguistik. |
InvariantCulture atau InvariantCultureIgnoreCase |
Perbandingan berdasarkan interpretasi string dalam budaya yang tidak berubah. Ini berbeda dari Ordinal dan OrdinalIgnoreCase, karena budaya invariant memperlakukan karakter di luar rentang yang diterima sebagai karakter invarian yang setara. |
Gunakan nilai-nilai ini hanya saat membandingkan data yang bertahan atau menampilkan data yang relevan secara linguistik yang memerlukan urutan pengurutan tetap. |
Pertimbangan Keamanan
Jika aplikasi Anda membuat keputusan keamanan berdasarkan hasil dari perbandingan atau perubahan kasus, maka operasi tersebut harus menggunakan metode String.Compare, dan meneruskan Ordinal atau OrdinalIgnoreCase sebagai argumen comparisonType.