2010-10-11 10 views
108

devo variabile come:Come aggiungere virgolette doppie a una stringa che si trova all'interno di una variabile?

string title = string.empty; 

Il mio bisogno è che qualunque stringa è passata ad esso devo visualizzare il contenuto all'interno di un div con in virgolette. Quindi ho scritto qualcosa del tipo:

... 
... 
<div>"+ title [email protected]"</div> 
... 
... 

Ma come aggiungere qui le virgolette doppie? In modo che verrà visualizzato come:

"How to add double quotes" 
+0

No non funziona asp.net, C# vs2013 non importa quanto io codice, se si guarda e la sorgente della pagina " e ' vengono sempre visualizzati. Sto usando 'Attributes.Add (... ' – djack109

risposta

218

Hai bisogno di fuggire loro raddoppiando loro (stringa verbatim letterale):

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

O con una stringa normale letterale li fuggire con un \:

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

e come rimuoverlo durante il salvataggio nel database? Voglio solo rimuovere la doppia virgoletta aggiuntiva usata per l'escape e non entrambi –

+0

@AnilPurswani - huh? Hai bisogno di leggere su ciò che significa escape è – Oded

+0

quando viene usato string str = @ "" "Come aggiungere doublequotes" ""; memorizza "" Come aggiungere doublequotes "" nel database ..... e mentre lo recupera recupera lo stesso .... ora provando a convertirlo .... beh ho avuto la risposta - str.Replace ("\\\" "," \ ""); ...... comunque grazie per la tua risposta .... –

32

Quindi stai essenzialmente chiedendo come memorizzare le doppie quotature all'interno di una variabile stringa? Due soluzioni per questo:

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

al fine di rendere forse un po 'più chiaro ciò che accade:

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

immettere un backslash (\) prima che i doppi apici. Questo dovrebbe funzionare

2

È possibile utilizzare &quot; anziché ". Verrà visualizzato correttamente dal browser.

+0

Nope non funziona asp.net, C# vs2013 non importa come codice se tu look e l'origine della pagina " e ' sono sempre visualizzati. Sto usando 'Attributes.Add (... ' – djack109

10

Se ho capito la tua domanda correttamente, forse si può provare questo:

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

Se si deve fai questo spesso e vorresti che questo sia più pulito nel codice che ti potrebbe piacere avere un metodo di estensione per questo.

Questo è un codice veramente ovvio, ma comunque penso che possa essere utile per afferrare e farti risparmiare tempo.

/// <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 + "\""; 
    } 

Poi si può chiamare foo.AddDoubleQuotes() o .AddDoubleQuotes "pippo"(), su ogni corda che ti piace.

Spero che questo aiuto.

5

un'altra nota:

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"); 

Il valore reale di hh come passato sarà "H: \ Movies \ Battel NAVE \ fatto corazzata-cd1.avi".

In caso di necessità di doppi valori letterali utilizzare: @ "H: \ MOVIES \ Battel SHIP \ done-battleship-cd1.avi"; Invece di: @ "H: \ MOVIESBattel SHIP \ done-battleship-cd1.avi "; Poiché i primi letterali è per il percorso e poi la seconda letterali sono per il doppio virgolette

0

In C# è possibile utilizzare:

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

in C# se usiamo "\" significa che indicherà che il seguente simbolo non è il simbolo in # di C# che userà lo sviluppatore. quindi nella stringa abbiamo bisogno di virgolette doppie per poter mettere il simbolo "\" prima delle doppie virgolette. string s = "\"Hi\""

1
string doubleQuotedPath = string.Format(@"""{0}""",path); 
0

È anche possibile includere le virgolette doppie in virgolette singole.

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

"<i class=\"fa fa-check-circle\"></i>" viene utilizzato con operatore ternario con l'associazione di dati Eval():

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

È possibile utilizzare $.

Interpolated Strings: Utilizzato per costruire stringhe. Una stringa interpolata si presenta come una stringa di modello che contiene espressioni interpolate. Una stringa interpolata restituisce una stringa che sostituisce le espressioni interpolate che contiene con le loro rappresentazioni di stringa. Questa funzione è disponibile in C# 6 e versioni successive.

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