Comment ajouter des guillemets doubles à une chaîne qui se trouve à l'intérieur d'une variable?


168

J'ai une variable comme:

string title = string.empty;

Mon besoin est que quelle que soit la chaîne qui lui est passée, je dois afficher le contenu à l'intérieur d'un div avec des guillemets doubles. J'ai donc écrit quelque chose comme:

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

Mais comment ajouter les guillemets ici? Pour qu'il s'affiche comme:

"How to add double quotes"

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

Réponses:


331

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

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

Ou avec un littéral de chaîne normal, vous les échappez avec un \:

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

et comment le supprimer lors de l'enregistrement dans la base de données? Je veux juste supprimer les guillemets doubles supplémentaires utilisés pour s'échapper et non les deux
Anil Purswani

1
@AnilPurswani - hein? Vous devez lire ce que signifie échapper.
Oded le

lorsqu'il est utilisé string str = @ "" "Comment ajouter des guillemets doubles" ""; il stocke "" Comment ajouter des guillemets doubles "" dans la base de données ..... et tout en le récupérant, il récupère la même chose .... essayant maintenant de le convertir .... eh bien j'ai eu la réponse - str.Replace ("\\ \ "", "\" "); ...... en tout cas merci pour votre réponse ....
Anil Purswani

Si vous voulez qu'une chaîne contienne des guillemets, vous les échappez. Cela n'a rien à voir avec leur stockage dans la base de données - si vous voulez supprimer les guillemets avant de les stocker dans la base de données, faites-le.
Oded le

oui, j'essayais juste d'obtenir la solution de stackoverflow.com/questions/26118354/… et j'ai atteint cette question, qui semble similaire quand les données ont-elles été extraites de la base de données .....
Anil Purswani

46

Vous vous demandez donc essentiellement comment stocker les guillemets doubles dans une variable chaîne? Deux solutions pour cela:

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

Afin de clarifier peut-être ce qui se passe:

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

14

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

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

14

Si vous devez le faire souvent et que vous souhaitez que le code soit plus clair, vous voudrez peut-être avoir une méthode d'extension pour cela.

C'est un code vraiment évident, mais je pense quand même qu'il peut être utile de saisir et de vous faire gagner du temps.

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

Ensuite, vous pouvez appeler foo.AddDoubleQuotes () ou "foo" .AddDoubleQuotes (), sur chaque chaîne de votre choix.

J'espère que cette aide.


7

Vous pouvez également inclure les guillemets doubles dans des guillemets simples.

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

6

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 telle que passée sera "H: \ MOVIES \ Battel SHIP \ done-battleship-cd1.avi".

Lorsque vous avez besoin de doubles littéraux doubles, 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 les seconds littéraux sont pour les guillemets doubles


2

Vous pouvez utiliser à la &quot;place de ". Il sera affiché correctement par le navigateur.


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


2

Vous pouvez utiliser $.

Chaînes interpolées : utilisées pour construire des chaînes. Une chaîne interpolée ressemble à une chaîne de modèle contenant des expressions interpolées. Une chaîne interpolée renvoie une chaîne qui remplace les expressions interpolées qu'elle contient par leurs représentations sous forme de chaîne. Cette fonctionnalité est disponible en C # 6 et versions ultérieures.

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

1

Utilisez soit

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

ou échappez aux guillemets doubles:

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

1

En C #, vous pouvez utiliser:

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


0

Mettez une barre oblique inverse (\) avant les guillemets. Cela devrait fonctionner.


0

en C # si nous utilisons "\", cela signifie que le symbole suivant n'est pas le symbole c # inbuild qui sera utilisé par le développeur. donc dans la chaîne, nous avons besoin de guillemets doubles, ce qui signifie que nous pouvons mettre le symbole "\" avant les guillemets doubles.string s = "\"Hi\""


0

"<i class=\"fa fa-check-circle\"></i>"est utilisé avec l'opérateur ternaire avec Eval()liaison de données:

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

0

Une alternative indirecte, mais simple à comprendre pour ajouter des guillemets au début et à la fin de la chaîne -

char quote = '"';

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

0

Si vous souhaitez ajouter des guillemets doubles en HTML

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

0

Si vous souhaitez ajouter des guillemets doubles à une chaîne qui contient également des valeurs dynamiques. Pour la même chose à la place de CodeId [i] et CodeName [i], vous pouvez mettre vos valeurs dynamiques.

data = "Test ID=" + "\"" + CodeId[i] + "\"" + " Name=" + "\"" + CodeName[i] + "\"" + " Type=\"Test\";
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.