Remplacement d'un antislash [Résolu]

Signaler
Messages postés
6
Date d'inscription
mardi 4 janvier 2005
Statut
Membre
Dernière intervention
14 juin 2011
-
Messages postés
194
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
1 mai 2009
-
Bonjour à tous,

je ne me rappelles plus ...
Dans une String, je reçois un chemin du style "\\serveur\partage\dir\file.xml". Il me semble que pour accéder au fichier file.xml, il faut mettre des "/" au lieu des "".
Vous rappelez vous la commande de remplacement ? je bute sur le fait que l'antislash est réservé ...
Il me semble que c'est un truc du style : chemin.replace("", "/") mais cela ne fonctione pas ...
Merci de votre aide.

Laurent.
A voir également:

2 réponses

Messages postés
1155
Date d'inscription
samedi 17 janvier 2004
Statut
Membre
Dernière intervention
29 avril 2011
7
Salut,


il faut doubler l'antislash. chemin.replace("\", "/")
Messages postés
194
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
1 mai 2009
39
En java, quand tu met antislash suivit de quelque chose, Java attends un caractere echappé : ainsi quand tu tape " il considere que " est un caractere echapé (le guillemet, c'est a dire que le guillemet n'est pas considéré comme etant la fin de la chaine), si tu veux mettre \ dans une chaine il faut taper : "\" (a la compil \\ est remplacé par \ tout court)

L'echappement permet d'inserer des caracteres speciaux au milieu d'une chaine :
\n rajoute un retour a la ligne
" rajoute un guillemet
\\ rajoute un \
\t une tabulation
\0x0A un caractere ascii de code 0x0A (en hexadecimal)
etc..

dans ta chaine "\\serveur\partage\dir\file.xml" , Java va crier! lol. En effet, il va considerer que p,d et f sont echappés, la bonne maniere de les rentrer dans le code est :
"\\\\serveur\\partage\\dir\\file.xml" A la compil, tous les \\ seront remplacés par \

Pour revenir a ton probleme, pour remplacer tous tes \ en / , il faut respecter les echappement comme plus haut, tu as mal tapé ta ligne :
au lieu de chemin.replace("", "/") (Java considere que "" n'est pas une chaine terminée, c'est normal car le caractere " est echappé et ne considere pas ce caractere comme etant la fin de la chaine);
tape plutot : chemin.replace("\", "/")

Tu verra ça marchera mieux, enfin ça compilera!