Heim > Backend-Entwicklung > C++ > Wie konvertiere ich C#-Strings in Escaped-String-Literale?

Wie konvertiere ich C#-Strings in Escaped-String-Literale?

Barbara Streisand
Freigeben: 2025-01-28 00:46:10
Original
551 Leute haben es durchsucht

C#-String in Escape-String-Literal konvertieren

How to Convert C# Strings to Escaped String Literals?

Frage:

Ist es möglich, einen C#-Stringwert in ein Stringliteral zu konvertieren, das Escape-Sequenzen wie Tab und Newline enthält? Konvertieren Sie beispielsweise eine Zeichenfolge mit Tabulator- und Zeilenumbruchzeichen in eine Zeichenfolge mit den Escape-Sequenzen „t“ und „rn“?

Antwort:

Traditionelle Methode:

Eine Methode wird seit langem verwendet:

<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>
Nach dem Login kopieren

Mit dieser Methode können Sie eine Zeichenfolge wie folgt konvertieren:

<code class="language-csharp">var input = "\tHello\r\n\tWorld!";</code>
Nach dem Login kopieren

Das Ausgabeergebnis ist:

<code>"\tHello\r\n\tWorld!"</code>
Nach dem Login kopieren
Nach dem Login kopieren

Alternative zur Verwendung von Roslyn:

Neuere Methode beinhaltet das Microsoft.CodeAnalysis.CSharp-Paket von NuGet. Hier ist der aktualisierte Code:

<code class="language-csharp">private static string ToLiteral(string valueTextForCompiler)
{
    return Microsoft.CodeAnalysis.CSharp.SymbolDisplay.FormatLiteral(valueTextForCompiler, false);
}</code>
Nach dem Login kopieren

Mit dieser Methode können Sie das gleiche Ergebnis wie mit der vorherigen Methode erzielen, indem Sie die Zeichenfolge wie folgt konvertieren:

<code class="language-csharp">var input = "\tHello\r\n\tWorld!";
Console.WriteLine(ToLiteral(input));</code>
Nach dem Login kopieren

Das Ausgabeergebnis ist:

<code>"\tHello\r\n\tWorld!"</code>
Nach dem Login kopieren
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie konvertiere ich C#-Strings in Escaped-String-Literale?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage