Wie füge ich einer Zeichenfolge innerhalb einer Variablen doppelte Anführungszeichen hinzu?


166

Ich habe Variable wie:

string title = string.empty;

Ich brauche, dass jeder Inhalt, der an ihn übergeben wird, den Inhalt in einem div in doppelten Anführungszeichen anzeigt. Also habe ich so etwas geschrieben wie:

...
...
<div>"+ title +@"</div>
...
...

Aber wie fügt man hier die doppelten Anführungszeichen hinzu? Damit es wie folgt angezeigt wird:

"How to add double quotes"

Nein, funktioniert nicht asp.net, c # vs2013, egal wie ich codiere, wenn Sie aussehen und die Seitenquelle & quot; und & # 39; werden immer angezeigt. Ich benutze `Attributes.Add (... '
djack109

Antworten:


330

Sie müssen ihnen entkommen, indem Sie sie verdoppeln (wörtliches Zeichenfolgenliteral):

string str = @"""How to add doublequotes""";

Oder mit einem normalen String-Literal entkommen Sie ihnen mit einem \:

string str = "\"How to add doublequotes\"";

und wie man es beim Speichern in der Datenbank entfernt? Ich möchte nur zusätzliches doppeltes Anführungszeichen entfernen, das für die Flucht verwendet wurde, und nicht beides
Anil Purswani,

1
@ AnilPurswani - nicht wahr? Sie müssen nachlesen, was Flucht bedeutet.
Oded

bei Verwendung string str = @ "" "Hinzufügen von Doppelzitaten" ""; es speichert "" Wie man doppelte Anführungszeichen hinzufügt "" in der Datenbank ..... und beim Abrufen wird dasselbe abgerufen .... jetzt wird versucht, es zu konvertieren .... nun, ich habe die Antwort - str.Replace ("\\ "", ""); ...... trotzdem danke für deine Antwort ....
Anil Purswani

Wenn eine Zeichenfolge Anführungszeichen enthalten soll, werden sie maskiert. Das hat nichts mit dem Speichern in der Datenbank zu tun. Wenn Sie die Anführungszeichen vor dem Speichern in der Datenbank entfernen möchten, tun Sie dies.
Oded

Ja, ich habe nur versucht, die Lösung von stackoverflow.com/questions/26118354/… zu finden, und bin zu dieser Frage gelangt, die ähnlich zu sein scheint, als die Daten aus der Datenbank abgerufen wurden .....
Anil Purswani

46

Sie fragen sich also im Wesentlichen, wie doppelte Anführungszeichen in einer Zeichenfolgenvariablen gespeichert werden sollen? Zwei Lösungen dafür:

var string1 = @"""inside quotes""";
var string2 = "\"inside quotes\"";

Um vielleicht etwas klarer zu machen, was passiert:

var string1 = @"before ""inside"" after";
var string2 = "before \"inside\" after";

14

Wenn Sie dies häufig tun müssen und möchten, dass der Code sauberer wird, möchten Sie möglicherweise eine Erweiterungsmethode dafür haben.

Dies ist wirklich offensichtlicher Code, aber ich denke trotzdem, dass es nützlich sein kann, Zeit zu sparen.

  /// <summary>
    /// Put a string between double quotes.
    /// </summary>
    /// <param name="value">Value to be put between double quotes ex: foo</param>
    /// <returns>double quoted string ex: "foo"</returns>
    public static string AddDoubleQuotes(this string value)
    {
        return "\"" + value + "\"";
    }

Dann können Sie foo.AddDoubleQuotes () oder "foo" .AddDoubleQuotes () für jede Zeichenfolge aufrufen, die Sie mögen.

Ich hoffe das hilft.


13

Wenn ich Ihre Frage richtig verstehe, können Sie vielleicht Folgendes versuchen:

string title = string.Format("<div>\"{0}\"</div>", "some text");

7

Sie können die doppelten Anführungszeichen auch in einfache Anführungszeichen setzen.

string str = '"' + "How to add doublequotes" + '"';

6

Noch ein Hinweis:

    string path = @"H:\\MOVIES\\Battel SHIP\\done-battleship-cd1.avi"; 
    string hh = string.Format("\"{0}\"", path);
    Process.Start(@"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe ", hh + " ,--play");

Der tatsächliche Wert von hh, wie er übergeben wurde, ist "H: \ MOVIES \ Battel SHIP \ done-Schlachtschiff-cd1.avi".

Wenn Sie doppelte Doppelliterale benötigen, verwenden Sie: @ "H: \ MOVIES \ Battel SHIP \ done-Schlachtschiff-cd1.avi"; Anstelle von: @ "H: \ MOVIESBattel SHIP \ done-Schlachtschiff-cd1.avi"; Weil die ersten Literale für den Pfadnamen und die zweiten Literale für die doppelten Anführungszeichen stehen


2

Sie könnten &quot;anstelle von verwenden ". Es wird vom Browser korrekt angezeigt.


Nein, funktioniert nicht asp.net, c # vs2013, egal wie ich codiere, wenn Sie aussehen und die Seitenquelle & quot; und & # 39; werden immer angezeigt. Ich benutze `Attributes.Add (... '
djack109


2

Sie können verwenden $.

Interpolierte Zeichenfolgen : Zum Erstellen von Zeichenfolgen. Eine interpolierte Zeichenfolge sieht aus wie eine Vorlagenzeichenfolge, die interpolierte Ausdrücke enthält. Eine interpolierte Zeichenfolge gibt eine Zeichenfolge zurück, die die darin enthaltenen interpolierten Ausdrücke durch ihre Zeichenfolgendarstellungen ersetzt. Diese Funktion ist in C # 6 und späteren Versionen verfügbar.

string commentor = $"<span class=\"fa fa-plus\" aria-hidden=\"true\"> {variable}</span>";

1

Benutze das eine oder das andere

& dquo;
<div> & dquo; "+ title + @" & dquo; </ div>

oder entkommen Sie dem doppelten Anführungszeichen:

""
<div> "+ title + @" "</ div>

1

In C # können Sie verwenden:

 string1 = @"Your ""Text"" Here";
 string2 = "Your \"Text\" Here";


0

Setzen Sie einen Backslash (\) vor die doppelten Anführungszeichen. Das sollte funktionieren.


0

Wenn wir in C # "\" verwenden, bedeutet dies, dass das folgende Symbol kein eingebautes C # -Symbol ist, das vom Entwickler verwendet wird. In Zeichenfolgen benötigen wir doppelte Anführungszeichen, dh wir können das Symbol "\" vor doppelte Anführungszeichen setzen.string s = "\"Hi\""


0

"<i class=\"fa fa-check-circle\"></i>"wird mit ternärem Operator mit Eval()Datenbindung verwendet:

Text = '<%# Eval("bqtStatus").ToString()=="Verified" ? 
       Convert.ToString("<i class=\"fa fa-check-circle\"></i>") : 
       Convert.ToString("<i class=\"fa fa-info-circle\"></i>"

0

Eine indirekte, aber einfach zu verstehende Alternative zum Hinzufügen von Anführungszeichen am Anfang und Ende der Zeichenfolge -

char quote = '"';

string modifiedString = quote + "Original String" + quote;

0

Wenn Sie doppelte Anführungszeichen in HTML hinzufügen möchten

echo "<p>Congratulations,  &#8220; ". $variable ." &#8221;!</p>";
output -> Congratulations, "Mr Jonh "!

0

Wenn Sie einer Zeichenfolge, die auch dynamische Werte enthält, doppelte Anführungszeichen hinzufügen möchten. Für dasselbe können Sie anstelle von CodeId [i] und CodeName [i] Ihre dynamischen Werte eingeben.

data = "Test ID=" + "\"" + CodeId[i] + "\"" + " Name=" + "\"" + CodeName[i] + "\"" + " Type=\"Test\";
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.