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.

Catatan

Contoh C# dalam artikel ini dijalankan di Try.NET pengenal kode sebaris dan area latihan. 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#.

Petunjuk / Saran

Anda dapat menggunakan bantuan AI untuk membagi string.

Memisahkan string menjadi kata-kata

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)
{
    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++)
{
    Console.WriteLine($"Index {i}: <{words[i]}>");
}

memiliki String.Split banyak kelebihan beban. Kelebihan beban ini menyesuaikan perilaku untuk memisahkan string:

  • Anda dapat menentukan pemisah sebagai char nilai atau string nilai.
  • Anda dapat menentukan satu pemisah atau beberapa pemisah. Jika Anda menentukan beberapa pemisah, semuanya harus jenis yang sama (baik char atau string).
  • Anda dapat menentukan jumlah maksimum substring yang akan dikembalikan.
  • Anda dapat menentukan apakah karakter pemisah berulang diabaikan, atau menghasilkan substring kosong dalam nilai yang dikembalikan.
  • Anda dapat menentukan apakah spasi kosong di depan dan di belakang dihapus dari substring yang dikembalikan.

Contoh yang tersisa menggunakan kelebihan beban yang berbeda untuk menunjukkan setiap perilaku ini.

Tentukan beberapa pemisah

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";
Console.WriteLine($"Original text: '{text}'");

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

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

Kemunculan berturut-turut dari pemisah mana pun menghasilkan string kosong dalam array keluaran.

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

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

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

foreach (var word in words)
{
    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";
Console.WriteLine($"Original text: '{text}'");

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

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

Batasi ukuran output

Contoh berikut menunjukkan cara membatasi output ke empat substring pertama dalam string sumber.

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

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

Menghapus substring kosong

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)
{
    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.

Memangkas spasi kosong

Contoh berikut menunjukkan efek pemangkasan entri:

string numerals = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10";
string[] words = numerals.Split(',', StringSplitOptions.TrimEntries);

Console.WriteLine("Trimmed entries:");
foreach (var word in words)
{
    Console.WriteLine($"<{word}>");
}
words = numerals.Split(',', StringSplitOptions.None);
Console.WriteLine("Untrimmed entries:");
foreach (var word in words)
{
    Console.WriteLine($"<{word}>");
}

Entri yang tidak dipangkas memiliki spasi kosong tambahan sebelum angka.

Menggunakan AI untuk memisahkan string

Anda dapat menggunakan alat AI, seperti GitHub Copilot, untuk menghasilkan kode untuk memisahkan string menggunakan String.Split di C#. Anda dapat menyesuaikan perintah untuk menggunakan string dan pemisah sesuai kebutuhan Anda.

Teks berikut ini menunjukkan contoh prompt untuk Copilot Chat:

Generate C# code to use Split.String to split a string into substrings.
Input string is "You win some. You lose some." Delimiters are space and period.
Provide example output.

GitHub Copilot didukung oleh AI, sehingga kejutan dan kesalahan dimungkinkan. Untuk informasi selengkapnya, lihat tanya jawab umum Copilot.

Lihat juga