214 votes

Comment ajouter des guillemets à une chaîne de caractères qui se trouve dans une variable ?

J'ai des variables comme :

string title = string.empty;

J'ai besoin que, quelle que soit la chaîne qui lui est passée, le contenu soit affiché à l'intérieur d'un fichier de type div entre guillemets. J'ai donc écrit quelque chose comme :

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

Mais comment puis-je ajouter les guillemets ici ? Pour que cela s'affiche comme :

"How to add double quotes"

0 votes

Nope ne fonctionne pas asp.net, c# vs2013 peu importe comment je code si vous regardez et la source de la page " et ' sont toujours affichés. J'utilise `Attributes.Add(...)'.

0 votes

415voto

Oded Points 271275

Vous devez les échapper en les doublant (chaîne littérale verbatim) :

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

Ou, avec une chaîne littérale normale, vous les échappez avec un caractère \ :

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

0 votes

Et comment le supprimer lors de la sauvegarde dans la base de données ? Je veux juste supprimer le guillemet double supplémentaire utilisé pour l'échappement et non les deux.

1 votes

@AnilPurswani - hein ? Vous devez vous documenter sur ce que signifie s'échapper.

1 votes

Lorsqu'on utilise la chaîne str = @ """Comment ajouter des guillemets"" ; elle stocke ""Comment ajouter des guillemets"" dans la base de données..... et lorsqu'on va la chercher, elle récupère la même chose.... maintenant j'essaie de la convertir.... bien j'ai obtenu la réponse - str.Replace("") \\\ "", "\"") ; ...... de toute façon merci pour votre réponse ....

59voto

Fredrik Mörk Points 85694

Vous demandez donc essentiellement comment stocker des guillemets doubles dans une variable de type chaîne ? Il existe deux solutions pour cela :

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

Afin de rendre un peu plus clair ce qui se passe :

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

16voto

Dave Points 167

Si je comprends bien votre question, vous pouvez peut-être essayer ceci :

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

7voto

DR. Points 57

Une autre note :

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

La valeur réelle de hh tel qu'adopté, sera " H:\MOVIES\Battel SHIP \done -battleship-cd1.avi".

Lorsque vous avez besoin de doubles littéraux, utilisez : @" H:\MOVIES\Battel SHIP \done -battleship-cd1.avi" ;

Au lieu de : @" H:\MOVIESBattel SHIP \done -battleship-cd1.avi" ;

Parce que le premier littéral est pour le nom du chemin et ensuite le deuxième littéral est pour les guillemets.

3voto

Jens Points 14829

Vous pourriez utiliser &quot; au lieu de " . Il sera affiché correctement par le navigateur.

1 votes

Nope ne fonctionne pas asp.net, c# vs2013 peu importe comment je code si vous regardez et la source de la page " et ' sont toujours affichés. J'utilise `Attributes.Add(...)'.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X