Comment utiliser \ dans une chaîne de caractères en C#
Je veux utiliser \ dans une chaîne de caractères, comme
string str="abc\xyz";
Mais ce qui me donne erreur.
J'ai aussi essayé de
string str="abc\\xyz";
Mais encore il ne fonctionne pas.
Quelqu'un peut-il m'aider?
(Je suis d'accord avec toutes les réponses, mais) quel est le résultat de la seconde tentative (qui devrait fonctionner) et qu'attendiez-vous ?
Effectivement un doublon - stackoverflow.com/questions/1057926/when-to-use-in-c
Qui sera certainement le travail post un extrait de si vous rencontrez toujours des problèmes - c'est peut-être ailleurs que dans cette ligne.
Ne pas le deuxième exemple qui vient d'être
le deuxième résultat ne devrait pas travailler; il y a trois barres obliques inverses qui résultats dans \\ et \xyz - depuis \xyz n'est pas valide hex, le compilateur refusera.
Effectivement un doublon - stackoverflow.com/questions/1057926/when-to-use-in-c
Qui sera certainement le travail post un extrait de si vous rencontrez toujours des problèmes - c'est peut-être ailleurs que dans cette ligne.
Ne pas le deuxième exemple qui vient d'être
string str = "abc\\xyz"
- c'est à dire que deux barres obliques inverses? Avoir trois donne "méconnu séquence d'échappement"le deuxième résultat ne devrait pas travailler; il y a trois barres obliques inverses qui résultats dans \\ et \xyz - depuis \xyz n'est pas valide hex, le compilateur refusera.
OriginalL'auteur Brigadier Jigar | 2010-03-12
Vous devez vous connecter pour publier un commentaire.
Cela fonctionne bien. Il imprime
abc\xyz
.OriginalL'auteur Darin Dimitrov
Vous pouvez échapper le caractère, comme suit:
ou de l'utilisation d'un mot à mot littéral de chaîne comme suit:
Ainsi, votre deuxième exemple devrait fonctionner.
Voir ici pour plus d'informations.
verbatim string literal
.Merci, je vais le mettre à jour.
A obtenu un upvote sur un de 9 ans réponse. J'adore cet endroit.
OriginalL'auteur Dave Van den Eynde
Normalement, cela devrait fonctionner. Une alternative est la suivante:
OriginalL'auteur Webleeuw
Bien, le dernier (
"abc\\xyz"
) entraînera certainement une barre oblique inverse dans la chaîne, ou vous pouvez utiliser un verbatim littéral de chaîne:Notez que si vous utilisez le débogueur de regarder vos chaînes, il est souvent (toujours?) "escape" pour vous, donc, si vous voulez voir
"abc\\xyz"
. Cela peut provoquer une bonne quantité de confusion. Soit regarder les caractères individuellement, ou imprimer la chaîne de la console.Vous n'avez pas dit dans ce façon il "ne fonctionne pas" - pourriez-vous donner plus de détails? Si c'est juste la sortie du débogueur, puis le ci-dessus peut être tout ce que vous êtes à la recherche pour - mais sinon, tu devrais nous dire ce que vous voyez vs ce que vous vous attendiez à voir.
Jeter un oeil à mon l'article sur les chaînes pour plus d'informations à propos des chaînes en général, en s'échappant, le débogueur etc.
Et pour cette raison je suis incapable d'aller plus loin dans mon code.
Mais les données correctes. Pourquoi ne le débogueur vous montrer les bonnes données, mais comme un verbatim de la chaîne littérale de vous faire "impossible de faire quelque chose de plus dans [votre] code"? Ce qui est fait arrêt vous de continuer? Ce résultat inattendu vous faire part de voir la chaîne de caractères dans le mot à mot littéral de chaîne de format?
Je suis en extraire la sous-chaîne à la suite de \ abc\xyz je.e.je veux xyz. Mais en écrivant string str=@"abc\xyz" je suis \xyz.
Puis votre code pour extraire la sous-chaîne est brisée. Je soupçonne que vous êtes absent un "+1".
OriginalL'auteur Jon Skeet
Vous pouvez le faire comme ceci
OriginalL'auteur Geoff
OriginalL'auteur Finglas
Vous pouvez faire ceci:
Dit que dit que la barre oblique est importante et n'est pas un caractère d'échappement.
OriginalL'auteur itsmatt
Vous aurez besoin de préfixe de la chaîne avec le symbole " @ " pour arrêter le compilateur essaie de la traiter comme une séquence d'échappement. Donc
string str = @"abc\xyz";
devrait fonctionner.OriginalL'auteur Eight-Bit Guru