Bagaimana cara mengganti string di bawah ini di C#
Sekarang:
"John K "GEN" Greg"
Tujuan:
"John K \"GEN\" Greg"
Ini salah karena saya tidak mengatasinya dengan benar:
s = s.Replace(""","\"");
Apa sintaks untuk mengganti tanda kutip dengan \ (garis miring)?
Bantuan apa pun akan dihargai.
Terima kasih
s = s.Replace("\"", "\\\"");
atau
s = s.Replace(@"""", @"\""");
Pada contoh pertama, "
harus diloloskan dengan backslash karena jika tidak, string akan berakhir. Demikian juga, dalam string pengganti \\
diperlukan untuk menghasilkan backslash tunggal dengan mengeskresikan karakter escape.
Dalam contoh kedua literal string verbatim digunakan, mereka ditulis sebagai @"..."
. Dalam literal tersebut tidak ada escape sequence yang dikenali, memungkinkan Anda untuk menulis string yang mengandung banyak backslash dengan cara yang jauh lebih bersih (seperti regular expressions). Satu-satunya escape sequence yang bekerja di sana adalah ""
untuk satu "
.
s = s.Replace("\"","\\\"");
Untuk apa Anda mengesampingkannya? Jika Anda akan memasukkannya ke dalam DB, pertimbangkan untuk menggunakan prepared statement sebagai gantinya. Jika Anda akan menggunakannya dalam output HTML Anda, pertimbangkan untuk menggunakan beberapa mesin templat yang melakukannya sendiri.