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


168

Ho una variabile come:

string title = string.empty;

Il mio bisogno è che qualunque stringa gli venga passata, devo mostrare il contenuto all'interno di un div tra virgolette doppie. Quindi ho scritto qualcosa del tipo:

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

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

"How to add double quotes"

No, non funziona asp.net, c # vs2013, non importa come codice se guardi e l'origine della pagina & quot; e & # 39; sono sempre visualizzati. Sto usando `Attributes.Add (... '
djack109

Risposte:


331

Devi scappare raddoppiandoli (stringa letterale letterale):

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

O con una normale stringa letterale le sfuggi con un \:

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

e come rimuoverlo durante il salvataggio nel database? Voglio solo rimuovere la doppia citazione aggiuntiva utilizzata per la fuga e non entrambe
Anil Purswani,

1
@AnilPurswani - eh? Devi leggere cosa significa scappare.
Oded,

una volta usato stringa str = @ "" "Come aggiungere le virgolette doppie" ""; memorizza "" Come aggiungere le virgolette "" nel database ..... e mentre lo recupera recupera lo stesso .... ora provando a convertirlo .... beh ho la risposta - str.Replace ("\\ \ "", "\" "); ...... comunque grazie per la tua risposta ....
Anil Purswani,

Se vuoi che una stringa contenga virgolette, le scampi. Ciò non ha nulla a che fare con l'archiviazione nel database: se si desidera eliminare le virgolette prima dell'archiviazione nel database, farlo.
Oded,

sì, stavo solo cercando di ottenere la soluzione di stackoverflow.com/questions/26118354/… e ho raggiunto questa domanda, che sembra simile quando sono stati recuperati i dati dal database .....
Anil Purswani,

46

Quindi stai essenzialmente chiedendo come archiviare le virgolette all'interno di una variabile stringa? Due soluzioni per questo:

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

Per forse forse rendere un po 'più chiaro cosa succede:

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

14

Se capisco correttamente la tua domanda, forse puoi provare questo:

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

14

Se devi farlo spesso e vuoi che questo sia più pulito nel codice, potresti avere un metodo di estensione per questo.

Questo è un codice davvero ovvio, ma penso comunque che possa essere utile 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 + "\"";
    }

Quindi puoi chiamare foo.AddDoubleQuotes () o "foo" .AddDoubleQuotes (), su ogni stringa che ti piace.

Spero che questo aiuto.


7

Puoi anche includere le virgolette doppie tra virgolette singole.

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

6

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 vero valore di hh come passato sarà "H: \ MOVIES \ Battel SHIP \ done-battleship-cd1.avi".

Quando hai bisogno di doppi letterali doppi usa: @ "H: \ MOVIES \ Battel SHIP \ done-battleship-cd1.avi"; Invece di: @ "H: \ MOVIESBattel SHIP \ done-battleship-cd1.avi"; Perché i primi letterali sono per il nome del percorso e poi i secondi letterali per le doppie virgolette


2

È possibile utilizzare &quot;invece di ". Verrà visualizzato correttamente dal browser.


No, non funziona asp.net, c # vs2013, non importa come codice se guardi e l'origine della pagina & quot; e & # 39; sono sempre visualizzati. Sto usando `Attributes.Add (... '
djack109


2

È possibile utilizzare $.

Stringhe interpolate : utilizzate per costruire stringhe. Una stringa interpolata si presenta come una stringa 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>";

1

Usa entrambi

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

o sfuggire alla doppia citazione:

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

1

In C # puoi usare:

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


0

Inserisci una barra rovesciata (\) prima delle doppie virgolette. Dovrebbe funzionare.


0

in C # se utilizziamo "\" significa che il seguente simbolo non è il simbolo c # inbuild che verrà utilizzato dallo sviluppatore. quindi nella stringa abbiamo bisogno di virgolette doppie significa che possiamo mettere il simbolo "\" prima delle virgolette doppie.string s = "\"Hi\""


0

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

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

0

Un'alternativa indiretta, ma di semplice comprensione per aggiungere virgolette all'inizio e alla fine della stringa -

char quote = '"';

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

0

Se vuoi aggiungere virgolette doppie in HTML

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

0

Se si desidera aggiungere virgolette doppie a una stringa che contiene anche valori dinamici. Per lo stesso al posto di CodeId [i] e CodeName [i] puoi inserire i tuoi valori dinamici.

data = "Test ID=" + "\"" + CodeId[i] + "\"" + " Name=" + "\"" + CodeName[i] + "\"" + " Type=\"Test\";
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.