I've telah menggunakan Split()
metode untuk membagi string, tapi ini hanya muncul untuk bekerja jika anda memisahkan string berdasarkan karakter. Apakah ada cara untuk membagi string
, dengan string lain yang dibagi berdasarkan parameter?
I've mencoba mengkonversi splitter ke dalam sebuah array karakter, tidak berhasil.
Dengan kata lain, saya'd ingin membagi string
:
THExxQUICKxxBROWNxxFOX
oleh xx
, dan mengembalikan sebuah array dengan nilai-nilai:
, CEPAT, COKLAT, RUBAH
Dalam rangka untuk membagi dengan string anda'll harus menggunakan string array overload.
string data = "THExxQUICKxxBROWNxxFOX";
return data.Split(new string[] { "xx" }, StringSplitOptions.None);
Ada overload Split yang mengambil string.
"THExxQUICKxxBROWNxxFOX".Split(new [] { "xx" }, StringSplitOptions.None);
Anda dapat menggunakan salah satu dari ini StringSplitOptions
Jadi jika string "THExxQUICKxxxxBROWNxxFOX", StringSplitOptions.Tidak ada
akan kembali kosong masuk dalam array untuk "xxxx" sementara bagian StringSplitOptions.RemoveEmptyEntries
tidak akan.
Regex.Split(string, "xx")
ini adalah cara yang saya lakukan biasanya. Tentu saja anda'll perlu
using System.Text.RegularExpressions;
tapi sekali lagi saya perlu bahwa perpustakaan sepanjang waktu.
Ada's kelebihan String.Split untuk ini:
"THExxQUICKxxBROWNxxFOX".Split(new [] {"xx"}, StringSplitOptions.None);
Saya biasanya menggunakan ekstensi saya sendiri untuk itu:
string data = "THExxQUICKxxBROWNxxFOX";
var dataspt = data.Split("xx");
//>THE QUICK BROWN FOX
//the extension class must be declared as static
public static class StringExtension
{
public static string[] Split(this string str, string splitter)
{
return str.Split(new[] { splitter }, StringSplitOptions.None);
}
}
Namun hal ini akan menyebabkan Pengecualian, jika Microsoft memutuskan untuk menyertakan metode-kelebihan di versi yang lebih baru. Hal ini juga kemungkinan alasan mengapa Microsoft tidak termasuk metode ini sementara: setidaknya satu perusahaan saya bekerja untuk, digunakan perpanjangan tersebut di semua mereka C# proyek.
Hal ini juga mungkin untuk kondisional menentukan metode yang pada saat runtime jika itu doesn't ada.
Sebelumnya jawaban semua benar. Aku pergi satu langkah lebih jauh dan membuat C# bekerja untuk saya dengan menentukan metode penyuluhan pada String:
public static string[] Split(this string toSplit, string splitOn) {
return toSplit.Split(new string[] { splitOn }, StringSplitOptions.None);
}
Dengan cara itu saya dapat panggilan pada setiap string dalam cara sederhana saya naif diharapkan pertama kali saya mencoba untuk mencapai hal ini:
"a big long string with stuff to split on".Split("g str");
Sebagai dari .NET Core 2.0, ada pengabaian yang mengambil string.
Jadi sekarang anda dapat melakukan "THExxQUICKxxBROWNxxFOX".Split("xx")
.
Cara termudah adalah dengan menggunakan String.Ganti
:
string myString = "THExxQUICKxxBROWNxxFOX";
mystring = mystring.Replace("xx", ", ");
Atau lebih sederhana:
string myString = "THExxQUICKxxBROWNxxFOX".Replace("xx", ", ");