gabule
Messages postés50Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention24 avril 2008
-
24 mai 2006 à 16:00
cs_mml
Messages postés4Date d'inscriptionvendredi 7 mars 2003StatutMembreDernière intervention18 avril 2009
-
30 mai 2006 à 21:59
Bonjour,
jai une chaine dans laquelle je veux remplacer les \ par des \\
Quelle est l'astuce : moi je fais ca et ca marche pas :
Code :
//dir_tmp est mon chemin String ins_dir_temp = dir_tmp.replaceAll("\", "\\\"); System.out.println(ins_dir_temp);
Java utilise donc des regex pour faire le changement (assez lourd au passage). Or il faut savoir que \ est un caractère spécial dans les regexs. Il va donc falloir ne rajouter quelques-uns pour arriver à faire ce qu'on veut.
\\ -> \\\\
en regex pur: le premier slash dit qu'on le caractère suivant est un caractère spécial qu'on veut considérer comme normal ("escape the char"). Puisque, on veut remplacer par \\, il faut indiquer ajouter 2 \ supplémentaires pour escaper les backslash.
\\\\ -> \\\\\\\\
en java: pour chaque backslash dans le pattern et dans la chaine remplacée, il faut de nouveau les "escaper" mais cette fois-ci par rapport au langage java.
Au final, voilà ce qui fonctionne chez moi:
String path = "c:\\silly\\little\\path";
System.out.println(path.replaceAll("\\\", "\\\\\\\"));
cs_mml
Messages postés4Date d'inscriptionvendredi 7 mars 2003StatutMembreDernière intervention18 avril 2009 30 mai 2006 à 21:59
pour la construction d'un chemin (unité disque\répertoire(s)\nom de fichier) il est toujours préférable d'utiliser le file.separator qui vous est automatique donné par Java, en fonction du système d'exploitation comme indiqué ci-dessous.
Soit vous avez déjà le chemin, vous connaissez le séparateur \ ou / et vous faites un .replaceAll avec le file.separator, soit vous construisez votre chemin, en mettant comme séparateur entre les répertoires et le nom de fichier, le file.separator.
// récupération du séparateur et mise dans une variable - utile pour une utilisation multiple :
String separator = System.getProperty("file.separator");
// utilisation (ici ont indique le chemin d'une image qui se trouve dans le dossier "images", lequel dossier est un sous- dossier du répertoire de l'application) :
String namePicture = "test.jpg";
String cheminImage = System.getProperty("user.dir") + separator + "images" + separator + namePicture;