292 votes

Échapper les guillemets doubles dans une chaîne de caractères

Les guillemets doubles peuvent être échappés comme suit :

string test = @"He said to me, ""Hello World"". How are you?";

Mais cela implique d'ajouter du caractère " à la chaîne de caractères. Existe-t-il une fonction C# ou une autre méthode permettant d'échapper aux guillemets doubles afin de ne pas avoir à modifier la chaîne de caractères ?

1 votes

Que voulez-vous vraiment comme résultat ? "" devient " dans une chaîne littérale.

0 votes

Une question similaire pour C/C++ (car il s'agit peut-être de la première réponse du moteur de recherche) : Comment obtenir des guillemets doubles dans un littéral de chaîne de caractères ?

8voto

SLaks Points 391154

Vous comprenez mal l'évasion.

Le supplément " font partie de la chaîne de caractères littérale ; ils sont interprétés par le compilateur comme un signe simple " .

La valeur réelle de votre chaîne est toujours He said to me, "Hello World". How are you? comme vous le verrez si vous l'imprimez au moment de l'exécution.

6voto

CodeCaster Points 38181

Veuillez expliquer votre problème. Vous dites :

Mais cela implique d'ajouter le caractère " à la chaîne.

Quel est ce problème ? Tu ne peux pas taper string foo = "Foo"bar""; car cela entraînerait une erreur de compilation. Quant à l en ajoutant en termes de taille de chaîne, ce n'est pas vrai :

@"""".Length == 1

"\"".Length == 1

1voto

Adarsh Menon Points 31

En C#, il existe au moins quatre façons d'intégrer un guillemet dans une chaîne de caractères :

  1. Échapper à la citation avec une barre oblique inversée
  2. Faire précéder la chaîne de caractères de @ et utiliser les guillemets
  3. Utilisez le caractère ASCII correspondant
  4. Utiliser le caractère hexadécimal Unicode

Veuillez vous référer à ce document pour une explication détaillée.

1 votes

Il serait préférable que vous résumiez ici (en éditant votre réponse) - car le lien peut se rompre à tout moment. Par exemple, qu'est-ce qu'on entend exactement par "Utilisez le caractère ASCII correspondant" ? Comment est-il exactement codé dans le code source ? Vous pourriez fournir un ou plusieurs exemples de code (géniaux) pour chacune de ces quatre façons.

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