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.
Artikel ini menunjukkan beberapa teknik untuk menghasilkan string dengan memodifikasi string. Semua teknik yang ditunjukkan mengembalikan hasil modifikasi sebagai objek baru string . Untuk menunjukkan bahwa string asli dan yang dimodifikasi adalah instans yang berbeda, contoh menyimpan hasilnya dalam variabel baru. Anda dapat memeriksa string yang asli dan string yang baru dan telah dimodifikasi saat Anda menjalankan setiap contoh.
Ada beberapa teknik yang ditunjukkan dalam artikel ini. Anda dapat mengganti teks yang sudah ada. Anda dapat mencari pola dan mengganti teks yang cocok dengan teks lain. Anda dapat memperlakukan string sebagai urutan karakter. Anda juga dapat menggunakan metode kenyamanan yang menghilangkan spasi kosong. Pilih teknik yang paling cocok dengan skenario Anda.
Ganti teks
Kode berikut membuat string baru dengan mengganti teks yang ada dengan pengganti.
string source = "The mountains are behind the clouds today.";
// Replace one substring with another with String.Replace.
// Only exact matches are supported.
var replacement = source.Replace("mountains", "peaks");
Console.WriteLine($"The source string is <{source}>");
Console.WriteLine($"The updated string is <{replacement}>");
Kode sebelumnya menunjukkan properti string yang tidak dapat diubah ini. Anda dapat melihat dalam contoh sebelumnya bahwa string asli, source, tidak dimodifikasi. Metode String.Replace membuat sebuah string baru yang berisi modifikasi.
Metode ini Replace dapat mengganti string atau karakter tunggal. Dalam kedua kasus, setiap kemunculan teks yang dicari diganti. Contoh berikut mengganti semua karakter ' dengan '_':
string source = "The mountains are behind the clouds today.";
// Replace all occurrences of one char with another.
var replacement = source.Replace(' ', '_');
Console.WriteLine(source);
Console.WriteLine(replacement);
String sumber tidak berubah, dan string baru dikembalikan dengan penggantian.
Pangkas spasi putih
Anda dapat menggunakan String.Trimmetode , String.TrimStart, dan String.TrimEnd untuk menghapus spasi kosong di awal atau akhir. Kode berikut menunjukkan contoh masing-masing. String sumber tidak berubah; metode ini mengembalikan string baru dengan konten yang dimodifikasi.
// Remove trailing and leading white space.
string source = " I'm wider than I need to be. ";
// Store the results in a new string variable.
var trimmedResult = source.Trim();
var trimLeading = source.TrimStart();
var trimTrailing = source.TrimEnd();
Console.WriteLine($"<{source}>");
Console.WriteLine($"<{trimmedResult}>");
Console.WriteLine($"<{trimLeading}>");
Console.WriteLine($"<{trimTrailing}>");
Hapus teks
Anda dapat menghapus teks dari string menggunakan String.Remove metode . Metode ini menghapus jumlah karakter yang ditentukan mulai dari indeks tertentu. Contoh berikut menunjukkan cara menggunakan String.IndexOf diikuti untuk Remove menghapus teks dari string:
string source = "Many mountains are behind many clouds today.";
// Remove a substring from the middle of the string.
string toRemove = "many ";
string result = string.Empty;
int i = source.IndexOf(toRemove);
if (i >= 0)
{
result= source.Remove(i, toRemove.Length);
}
Console.WriteLine(source);
Console.WriteLine(result);
Mengganti pola yang cocok
Anda dapat menggunakan ekspresi reguler untuk mengganti pola pencocokan teks dengan teks baru, yang mungkin ditentukan oleh pola. Contoh berikut menggunakan System.Text.RegularExpressions.Regex kelas untuk menemukan pola dalam string sumber dan menggantinya dengan kapitalisasi yang tepat. Metode ini Regex.Replace(String, String, MatchEvaluator, RegexOptions) mengambil fungsi yang menyediakan logika penggantian sebagai salah satu argumennya. Dalam contoh ini, fungsi tersebut, LocalReplaceMatchCase adalah fungsi lokal yang dideklarasikan di dalam metode sampel.
LocalReplaceMatchCase menggunakan System.Text.StringBuilder kelas untuk membangun string pengganti dengan kapitalisasi yang tepat.
Ekspresi reguler paling berguna untuk mencari dan mengganti teks yang mengikuti pola, bukan teks yang diketahui. Untuk informasi selengkapnya, lihat Cara mencari string. Pola pencarian, "the\s" mencari kata "the" diikuti dengan karakter spasi putih. Bagian pola tersebut memastikan bahwa pola tidak cocok dengan kata "there" dalam string sumber. Untuk informasi selengkapnya tentang elemen bahasa ekspresi reguler, lihat Bahasa Ekspresi Reguler - Referensi Cepat.
string source = "The mountains are still there behind the clouds today.";
// Use Regex.Replace for more flexibility.
// Replace "the" or "The" with "many" or "Many".
// using System.Text.RegularExpressions
string replaceWith = "many ";
source = System.Text.RegularExpressions.Regex.Replace(source, """the\s""", LocalReplaceMatchCase,
System.Text.RegularExpressions.RegexOptions.IgnoreCase);
Console.WriteLine(source);
string LocalReplaceMatchCase(System.Text.RegularExpressions.Match matchExpression)
{
// Test whether the match is capitalized
if (Char.IsUpper(matchExpression.Value[0]))
{
// Capitalize the replacement string
System.Text.StringBuilder replacementBuilder = new System.Text.StringBuilder(replaceWith);
replacementBuilder[0] = Char.ToUpper(replacementBuilder[0]);
return replacementBuilder.ToString();
}
else
{
return replaceWith;
}
}
Metode StringBuilder.ToString mengembalikan string yang tidak dapat diubah dengan konten dalam StringBuilder objek.
Memodifikasi karakter individual
Anda dapat menghasilkan array karakter dari string, memodifikasi konten array, lalu membuat string baru dari konten array yang dimodifikasi.
Contoh berikut menunjukkan cara mengganti sekumpulan karakter dalam string. Pertama, metode String.ToCharArray() digunakan untuk membuat larik karakter. Ini menggunakan metode IndexOf untuk menemukan indeks awal dari kata "rubah." Kemudian, tiga karakter berikutnya diganti dengan kata yang berbeda. Terakhir, string baru dibangun dari array karakter yang diperbarui.
string phrase = "The quick brown fox jumps over the fence";
Console.WriteLine(phrase);
char[] phraseAsChars = phrase.ToCharArray();
int animalIndex = phrase.IndexOf("fox");
if (animalIndex != -1)
{
phraseAsChars[animalIndex++] = 'c';
phraseAsChars[animalIndex++] = 'a';
phraseAsChars[animalIndex] = 't';
}
string updatedPhrase = new string(phraseAsChars);
Console.WriteLine(updatedPhrase);
Menyusun konten string secara terprogram
Karena string tidak dapat diubah, contoh sebelumnya semua membuat string sementara atau array karakter. Dalam skenario performa tinggi, diinginkan untuk menghindari alokasi timbunan ini. .NET menyediakan String.Create metode yang memungkinkan Anda mengisi konten karakter string secara terprogram melalui panggilan balik sambil menghindari alokasi string sementara perantara.
// constructing a string from a char array, prefix it with some additional characters
char[] chars = [ 'a', 'b', 'c', 'd', '\0' ];
int length = chars.Length + 2;
string result = string.Create(length, chars, (Span<char> strContent, char[] charArray) =>
{
strContent[0] = '0';
strContent[1] = '1';
for (int i = 0; i < charArray.Length; i++)
{
strContent[i + 2] = charArray[i];
}
});
Console.WriteLine(result);
Anda dapat memodifikasi string dalam blok tetap dengan kode yang tidak aman, tetapi sangat tidak disarankan untuk mengubah konten string setelah string dibuat. Melakukannya menyebabkan bug yang tidak dapat diprediksi. Misalnya, jika seseorang magang string yang memiliki konten yang sama dengan milik Anda, mereka mendapatkan salinan Anda dan tidak mengharapkan bahwa Anda memodifikasi string mereka.