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

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

Barbara Streisand
Barbara StreisandOriginal
2025-01-28 00:46:10529Durchsuche

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>

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

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

Das Ausgabeergebnis ist:

<code>"\tHello\r\n\tWorld!"</code>

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>

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>

Das Ausgabeergebnis ist:

<code>"\tHello\r\n\tWorld!"</code>

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!

Stellungnahme:
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