Bagikan melalui


Cara memisahkan string menggunakan String.Split di C#

Metode String.Split membuat array substring dengan memisahkan string input berdasarkan satu atau beberapa pemisah. Metode ini seringkali merupakan cara termudah untuk memisahkan string pada batas kata. Ini juga digunakan untuk memisahkan string pada karakter atau string tertentu lainnya.

Catatan

Contoh C# dalam artikel ini dijalankan di Try.NET pelari kode sebaris dan taman bermain. Pilih tombol Jalankan untuk menjalankan contoh di jendela interaktif. Setelah Anda menjalankan kode, Anda dapat memodifikasinya dan menjalankan kode yang dimodifikasi dengan memilih Jalankan lagi. Kode yang dimodifikasi berjalan di jendela interaktif atau, jika kompilasi gagal, jendela interaktif menampilkan semua pesan kesalahan pengompilasi C#.

Kode berikut membagi frasa umum menjadi array string untuk setiap kata.

string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ');

foreach (var word in words)
{
    System.Console.WriteLine($"<{word}>");
}

Setiap instans dari karakter pemisah menghasilkan nilai dalam array yang dikembalikan. Karena array di C# diindeks nol, setiap string dalam array diindeks dari 0 ke nilai yang dikembalikan oleh Array.Length properti dikurangi 1:

string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ');

for (int i = 0; i < words.Length; i++)
{
    System.Console.WriteLine($"Index {i}: <{words[i]}>");
}

Karakter pemisah secara berturut-turut menghasilkan string kosong sebagai nilai dalam array yang dikembalikan. Anda dapat melihat bagaimana string kosong dibuat dalam contoh berikut, yang menggunakan karakter spasi sebagai pemisah.

string phrase = "The quick brown    fox     jumps over the lazy dog.";
string[] words = phrase.Split(' ');

foreach (var word in words)
{
    System.Console.WriteLine($"<{word}>");
}

Perilaku ini mempermudah format seperti file nilai yang dipisahkan oleh koma (CSV) yang mewakili data tabular. Koma berturut-turut mewakili kolom kosong.

Anda dapat meneruskan parameter StringSplitOptions.RemoveEmptyEntries opsional untuk mengecualikan string kosong apa pun dalam array yang dikembalikan. Untuk pemrosesan yang lebih rumit dari kumpulan yang dikembalikan, Anda dapat menggunakan LINQ untuk memanipulasi urutan hasil.

String.Split dapat menggunakan beberapa karakter pemisah. Contoh berikut menggunakan spasi, koma, titik, titik dua, dan tab sebagai karakter pemisah, yang diteruskan ke Split dalam array. Perulangan di bagian bawah kode menampilkan setiap kata dalam array yang dikembalikan.

char[] delimiterChars = { ' ', ',', '.', ':', '\t' };

string text = "one\ttwo three:four,five six seven";
System.Console.WriteLine($"Original text: '{text}'");

string[] words = text.Split(delimiterChars);
System.Console.WriteLine($"{words.Length} words in text:");

foreach (var word in words)
{
    System.Console.WriteLine($"<{word}>");
}

Instans berturut-turut dari pemisah masing-masing menghasilkan string kosong dalam array output:

char[] delimiterChars = { ' ', ',', '.', ':', '\t' };

string text = "one\ttwo :,five six seven";
System.Console.WriteLine($"Original text: '{text}'");

string[] words = text.Split(delimiterChars);
System.Console.WriteLine($"{words.Length} words in text:");

foreach (var word in words)
{
    System.Console.WriteLine($"<{word}>");
}

String.Split dapat mengambil array string (urutan karakter yang bertindak sebagai pemisah untuk menguraikan string target, bukan karakter tunggal).

string[] separatingStrings = { "<<", "..." };

string text = "one<<two......three<four";
System.Console.WriteLine($"Original text: '{text}'");

string[] words = text.Split(separatingStrings, System.StringSplitOptions.RemoveEmptyEntries);
System.Console.WriteLine($"{words.Length} substrings in text:");

foreach (var word in words)
{
    System.Console.WriteLine(word);
}

Lihat juga