Saya telah menggunakan Split()
metode ini untuk membagi string, tetapi ini hanya berfungsi jika Anda memisahkan sebuah string dengan sebuah karakter. Apakah ada cara untuk membagi astring
, dengan string lain menjadi parameter yang dibagi?
Saya sudah mencoba mengubah splitter menjadi array karakter, tanpa hasil.
Dengan kata lain, saya ingin membagi string
:
THExxQUICKxxBROWNxxFOX
oleh xx
, dan mengembalikan array dengan nilai:
THE, CEPAT, COKLAT, FOX
Jawaban:
Untuk membaginya dengan string, Anda harus menggunakan string array yang berlebihan .
sumber
string.Split
.string[] Split(string pattern)
, yang merupakan penggunaan paling alami yang bisa saya pikirkan tetapi belum ada. Saya menulis C sebelum jadi saya terbiasa dengan array ar tapi saya masih benci melihatchar[]
muncul dalam kode C # karena tiba-tiba menarik perhatian saya dari level stream ke level byte. Adakah yang tahu mengapa orang-orang C # library mendesain metode Split seperti ini? Jika ada alasan yang bagus, saya mungkin bisa mencoba untuk menghargainya meskipun tidak nyaman.data.Split("xx")
?Ada kelebihan Split yang membutuhkan string.
Anda dapat menggunakan salah satu dari StringSplitOptions ini
Jadi jika stringnya adalah "THExxQUICKxxxxBROWNxxFOX",
StringSplitOptions.None
akan mengembalikan entri kosong dalam array untuk bagian "xxxx" sementaraStringSplitOptions.RemoveEmptyEntries
tidak akan.sumber
adalah cara saya melakukannya biasanya.
Tentu saja Anda akan membutuhkan:
atau :
tetapi sekali lagi saya membutuhkan perpustakaan itu sepanjang waktu.
sumber
RegEx.Split
a sedikit lebih mahal daripada yang sederhanaString.Split
karena overhead ekspresi reguler.Regex.Escape
pada string, ini akan luput dari setiap meta-karakter regex.Ada kelebihan String. Meletakkan untuk ini:
sumber
Saya biasanya suka menggunakan ekstensi saya sendiri untuk itu:
Namun ini akan menyebabkan Pengecualian, jika Microsoft memutuskan untuk memasukkan metode-kelebihan ini di versi yang lebih baru. Itu juga kemungkinan alasan mengapa Microsoft belum memasukkan metode ini untuk sementara waktu: Setidaknya satu perusahaan tempat saya bekerja, menggunakan ekstensi semacam itu di semua proyek C # mereka.
Dimungkinkan juga untuk menentukan secara kondisional metode saat runtime jika tidak ada.
sumber
params string[] splitter
sebagai parameter kedua dan ubahnew[] {splitter}
kesplitter
untuk mendukung beberapa pembatas.Jawaban sebelumnya semuanya benar. Saya melangkah lebih jauh dan membuat C # bekerja untuk saya dengan mendefinisikan metode ekstensi pada String:
Dengan begitu saya bisa menyebutnya pada string apa pun dengan cara sederhana yang secara naif saya harapkan saat pertama kali saya mencoba menyelesaikan ini:
sumber
Pada .NET Core 2.0, ada penggantian yang mengambil string.
Jadi sekarang bisa kamu lakukan
"THExxQUICKxxBROWNxxFOX".Split("xx")
.Lihat https://docs.microsoft.com/en-us/dotnet/api/system.string.split?view=netcore-2.0#System_String_Split_System_String_System_String_System_StringSplitOptions_
sumber
Pilih saja karakter pengganti dengan hati-hati (pilih karakter yang kemungkinan tidak ada di string)!
sumber
|
char, karena alasan ini saya pikir itu berbahaya untuk digunakan.Ini juga mudah:
sumber
"THExQUICK"
mana kita tidak ingin ituCara termudah adalah menggunakan
String.Replace
:Atau lebih sederhana:
sumber
xx
itu.