Rumah > pembangunan bahagian belakang > C++ > Bagaimana cara menukar rentetan C# ke literasi rentetan yang melarikan diri?

Bagaimana cara menukar rentetan C# ke literasi rentetan yang melarikan diri?

Barbara Streisand
Lepaskan: 2025-01-28 00:46:10
asal
517 orang telah melayarinya

Tukar rentetan C# kepada literal rentetan terlepas

How to Convert C# Strings to Escaped String Literals?

Soalan:

Adakah mungkin untuk menukar nilai rentetan C# kepada literal rentetan yang mengandungi urutan pelarian, seperti tab dan baris baharu? Sebagai contoh, tukar rentetan yang mengandungi aksara tab dan baris baharu kepada rentetan yang mengandungi urutan pelarian "t" dan "rn"?

Jawapan:

Kaedah tradisional:

Satu kaedah telah digunakan untuk masa yang lama:

<code class="language-csharp">private static string ToLiteral(string input)
{
    using (var writer = new StringWriter())
    {
        using (var provider = CodeDomProvider.CreateProvider("CSharp"))
        {
            provider.GenerateCodeFromExpression(new CodePrimitiveExpression(input), writer, null);
            return writer.ToString();
        }
    }
}</code>
Salin selepas log masuk

Menggunakan kaedah ini, anda boleh menukar rentetan seperti ini:

<code class="language-csharp">var input = "\tHello\r\n\tWorld!";</code>
Salin selepas log masuk

Hasil output ialah:

<code>"\tHello\r\n\tWorld!"</code>
Salin selepas log masuk
Salin selepas log masuk

Alternatif untuk menggunakan Roslyn:

Kaedah yang lebih baharu melibatkan pakej Microsoft.CodeAnalysis.CSharp daripada NuGet. Berikut ialah kod yang dikemas kini:

<code class="language-csharp">private static string ToLiteral(string valueTextForCompiler)
{
    return Microsoft.CodeAnalysis.CSharp.SymbolDisplay.FormatLiteral(valueTextForCompiler, false);
}</code>
Salin selepas log masuk

Menggunakan kaedah ini, anda boleh mendapatkan hasil yang sama seperti kaedah sebelumnya, menukar rentetan seperti ini:

<code class="language-csharp">var input = "\tHello\r\n\tWorld!";
Console.WriteLine(ToLiteral(input));</code>
Salin selepas log masuk

Hasil output ialah:

<code>"\tHello\r\n\tWorld!"</code>
Salin selepas log masuk
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana cara menukar rentetan C# ke literasi rentetan yang melarikan diri?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan