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.
Concatenation adalah proses menambahkan satu string ke akhir string lain. Anda menggabungkan string dengan menggunakan operator +
. Untuk literal string dan konstanta string, penggabungan terjadi pada waktu kompilasi; tidak ada penggabungan yang terjadi saat waktu berjalan. Untuk variabel string, penggabungan hanya terjadi pada waktu proses.
Nota
Contoh C# dalam artikel ini berjalan di runner dan playground kode sebaris Try.NET. Pilih tombol Jalankan untuk menjalankan contoh di jendela interaktif. Setelah 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 pengkompilasi C#.
Nasehat
Anda dapat menggunakan bantuan AI untuk menggabungkan string.
Literal string
Contoh berikut membagi string literal panjang menjadi string yang lebih kecil agar meningkatkan keterbacaan dalam kode sumber. Kode menggabungkan string yang lebih kecil untuk membuat string panjang harfiah. Bagian-bagian digabungkan menjadi satu string pada waktu kompilasi. Tidak ada biaya kinerja saat berjalan tanpa memandang jumlah string yang terlibat.
// Concatenation of literals is performed at compile time, not run time.
string text = "Historically, the world of data and the world of objects " +
"have not been well integrated. Programmers work in C# or Visual Basic " +
"and also in SQL or XQuery. On the one side are concepts such as classes, " +
"objects, fields, inheritance, and .NET Framework APIs. On the other side " +
"are tables, columns, rows, nodes, and separate languages for dealing with " +
"them. Data types often require translation between the two worlds; there are " +
"different standard functions. Because the object world has no notion of query, a " +
"query can only be represented as a string without compile-time type checking or " +
"IntelliSense support in the IDE. Transferring data from SQL tables or XML trees to " +
"objects in memory is often tedious and error-prone.";
Console.WriteLine(text);
operator +
dan +=
Untuk menggabungkan variabel string, Anda dapat menggunakan operator +
atau +=
, interpolasi string atau metode String.Format, String.Concat, String.Join, atau StringBuilder.Append. Operator +
mudah digunakan dan membuat kode intuitif. Bahkan jika Anda menggunakan beberapa operator +
dalam satu pernyataan, konten string hanya disalin sekali. Kode berikut menunjukkan contoh penggunaan operator +
dan +=
untuk menggabungkan string:
string userName = "<Type your name here>";
string dateString = DateTime.Today.ToShortDateString();
// Use the + and += operators for one-time concatenations.
string str = "Hello " + userName + ". Today is " + dateString + ".";
Console.WriteLine(str);
str += " How are you today?";
Console.WriteLine(str);
Interpolasi string
Dalam beberapa ekspresi, lebih mudah untuk menggabungkan string menggunakan interpolasi string, seperti yang ditunjukkan oleh kode berikut:
string userName = "<Type your name here>";
string date = DateTime.Today.ToShortDateString();
// Use string interpolation to concatenate strings.
string str = $"Hello {userName}. Today is {date}.";
Console.WriteLine(str);
str = $"{str} How are you today?";
Console.WriteLine(str);
Nota
Dalam operasi penggabungan string, kompilator C# memperlakukan string null sama dengan string kosong.
Anda dapat menggunakan interpolasi string untuk menginisialisasi string konstan ketika semua ekspresi yang digunakan untuk placeholder juga merupakan string konstan.
String.Format
Metode lain untuk menggabungkan string adalah String.Format. Metode ini berfungsi dengan baik saat Anda membangun string dari beberapa string komponen.
StringBuilder
Dalam kasus lain, Anda mungkin menggabungkan string dalam perulangan di mana jumlah string sumber yang sebenarnya bisa besar. Kelas StringBuilder dirancang untuk skenario ini. Kode berikut menggunakan metode Append kelas StringBuilder untuk menggabungkan string.
// Use StringBuilder for concatenation in tight loops.
var sb = new StringBuilder();
for (int i = 0; i < 20; i++)
{
sb.AppendLine(i.ToString());
}
Console.WriteLine(sb.ToString());
Anda dapat membaca lebih lanjut tentang alasan untuk memilih penggabungan string atau kelas StringBuilder
.
String.Concat
atau String.Join
Opsi lain untuk menggabungkan string dari koleksi adalah menggunakan metode String.Concat. Gunakan metode String.Join jika pemisah harus memisahkan string sumber. Kode di bawah ini menggabungkan array kata dengan menggunakan kedua metode:
string[] words = ["The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog."];
var unreadablePhrase = string.Concat(words);
Console.WriteLine(unreadablePhrase);
var readablePhrase = string.Join(" ", words);
Console.WriteLine(readablePhrase);
LINQ dan Enumerable.Aggregate
Akhirnya, Anda dapat menggunakan LINQ dan metode Enumerable.Aggregate untuk menggabungkan string dari koleksi. Metode ini menggabungkan string sumber menggunakan ekspresi lambda. Ekspresi lambda melakukan pekerjaan untuk menambahkan setiap string ke akumulasi yang ada. Contoh berikut menggabungkan kumpulan kata, dengan menambahkan spasi di antara setiap kata dalam kumpulan tersebut.
string[] words = ["The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog."];
var phrase = words.Aggregate((partialPhrase, word) =>$"{partialPhrase} {word}");
Console.WriteLine(phrase);
Opsi ini dapat menyebabkan lebih banyak alokasi daripada metode lain untuk menggabungkan koleksi, karena membuat string perantara untuk setiap perulangan. Jika mengoptimalkan performa sangat penting, pertimbangkan kelas StringBuilder
atau metode String.Concat
atau String.Join
untuk menggabungkan koleksi, bukan Enumerable.Aggregate
.
Menggunakan AI untuk menggabungkan string
Anda dapat menggunakan alat AI, seperti GitHub Copilot, untuk menghasilkan kode C# untuk menggabungkan beberapa string. Anda dapat menyesuaikan perintah untuk menentukan string dan metode yang akan digunakan sesuai kebutuhan Anda.
Teks berikut menunjukkan contoh perintah untuk Obrolan Salinan:
Generate C# code to use String.Format to build an output string "Hi x, today's date is y. You are z years old." where x is "John", y is today's date and z is the birthdate January 1, 2000. The final string should show date in the full format mm/dd/yyyy. Show output.
GitHub Copilot didukung oleh AI, sehingga kejutan dan kesalahan dimungkinkan. Untuk informasi selengkapnya, lihat tanya jawab umum Copilot.