varlau
Messages postés6Date d'inscriptionmardi 4 janvier 2005StatutMembreDernière intervention14 juin 2011
-
28 mars 2006 à 10:59
tucobouch
Messages postés194Date d'inscriptionvendredi 17 février 2006StatutMembreDerniè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.
tucobouch
Messages postés194Date d'inscriptionvendredi 17 février 2006StatutMembreDernière intervention 1 mai 200950 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("\", "/")