Je veux utiliser \ dans une chaîne, commeComment utiliser dans une chaîne en C#
string str="abc\xyz";
Mais cela me donne une erreur.
J'ai aussi essayé
string str="abc\\xyz";
Mais encore isnt travailler. Quelqu'un peut-il m'aider?
Je veux utiliser \ dans une chaîne, commeComment utiliser dans une chaîne en C#
string str="abc\xyz";
Mais cela me donne une erreur.
J'ai aussi essayé
string str="abc\\xyz";
Mais encore isnt travailler. Quelqu'un peut-il m'aider?
public class Program
{
static void Main(string[] args)
{
string str = "abc\\xyz";
Console.WriteLine(str);
}
}
Cela fonctionne très bien. Il imprime abc\xyz
.
Vous pouvez le faire comme ça
string str = @"abc\xyz";
Vous pouvez échapper au caractère, comme ceci:
string str="abc\\xyz";
ou utiliser une chaîne mot pour mot littéral comme ceci:
string [email protected]"abc\xyz";
Donc, votre deuxième exemple devrait fonctionner. Pour plus d'informations, voir here.
FYI, ce dernier s'appelle un 'verbatim chaîne littérale'. –
Merci, je vais mettre à jour. –
Eh bien, ce dernier ("abc\\xyz"
) entraînera certainement une barre oblique inverse dans la chaîne - ou vous pouvez utiliser un littéral chaîne verbatim :
string str = @"abc\xyz";
Notez que si vous utilisez le débogueur pour regarder votre cordes, il va souvent (toujours?) "les échapper" pour vous, donc vous verriez "abc\\xyz"
. Cela peut causer beaucoup de confusion. Examinez les caractères individuellement ou imprimez la chaîne sur la console.
Vous n'avez pas dit en quoi façon il "ne fonctionne pas" - pourriez-vous donner plus de détails? Si ce n'est que la sortie du débogueur, alors ce qui précède peut être tout ce que vous cherchez - mais sinon, vous devriez nous dire ce que vous voyez ou ce que vous attendiez de voir.
Jetez un oeil à mon article about strings pour plus d'informations sur les chaînes en général, échappant, le débogueur etc.
Oui. Pendant le débogage, je vois abc \\ xyz quand j'ai utilisé @ "abc \ xyz". –
Et pour cette raison, je suis incapable de faire quoi que ce soit d'autre dans mon code. –
@Brigadier: Mais ce sont les données correctes. Pourquoi le débogueur vous montre-t-il les bonnes données mais en tant que chaîne littérale verbatim, vous rendant "incapable de faire quoi que ce soit d'autre dans [votre] code"? Qu'est-ce qui * vous empêche de continuer? Quels résultats inattendus obtenez-vous en dehors de voir la chaîne au format littéral littéral verbatim? –
string str="abc\\xyz";
Normalement, cela devrait fonctionner. Une alternative est:
string str = @"abc\xyz";
string str = @"abc\xyz";
Vous pouvez le faire:
string str = @"abc\xyz";
Cela dit dit que la barre oblique est importante et non pas un caractère d'échappement.
Vous devrez préfixer la chaîne avec le symbole '@' pour arrêter le compilateur en essayant de le traiter comme une séquence d'échappement. Donc, string str = @"abc\xyz";
devrait fonctionner.
(Je suis d'accord avec toutes les réponses, mais) quel est le résultat du deuxième essai (qui devrait fonctionner) et qu'attendiez-vous? – Timores
Effectivement un duplicata - http://stackoverflow.com/questions/1057926/when-to-use-in-c – ChrisF
Cela fonctionnera certainement - poster un extrait si vous avez encore des problèmes - peut-être qu'il est ailleurs que ce particulier ligne. – itsmatt