Remplacement d'un antislash

Résolu
varlau Messages postés 6 Date d'inscription mardi 4 janvier 2005 Statut Membre Dernière intervention 14 juin 2011 - 28 mars 2006 à 10:59
tucobouch Messages postés 194 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 1 mai 2009 - 28 mars 2006 à 11:32
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

kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
28 mars 2006 à 11:26
Salut,


il faut doubler l'antislash. chemin.replace("\", "/")
3
tucobouch Messages postés 194 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 1 mai 2009 50
28 mars 2006 à 11:32
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!
1
Rejoignez-nous