Bonjour,
J'ai une variable de type String et je veux supprimer tous les espaces qu'elle contient.
Comment ?
Exp: String str = "hell o aze rt y "; => devient "helloazerty"
Bonjour,
J'ai une variable de type String et je veux supprimer tous les espaces qu'elle contient.
Comment ?
Exp: String str = "hell o aze rt y "; => devient "helloazerty"
Salut,
Je pense qu'un simple
devrait faire l'affaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 String str = "hello a z e r ty"; str = str.replace (" ", "");
a+
replaceAll
Et tu peux mettre "\\s+" au lieu de " " pour prendre en compte aussi les tabulations etc...
Envoyé par Kh4iN3
Sa marcheEnvoyé par ®om
Merci pour vos reponse
Bonjour,
je fais rebondir ce post car ayant testé la solution proposée (parmis plusieurs autres tests) je n'arrive toujours pas à supprimer les espaces dans ma chaîne de caractère !
mon code :
console :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public static String removeSpaces(String s) { System.out.println("avant : "+s); String str = s.replaceAll(" ",""); str = str.replaceAll("\\s+", ""); System.out.println("après : "+str); return str; }
j'ai aussi essayé sans succès le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 avant : 1 000,00 après : 1 000,00 avant : 9 000,00 après : 9 000,00 avant : 10 000,00 après : 10 000,00
les idées sont les bienvenues, merci d'avance !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 StringTokenizer st = new StringTokenizer(s," ",false); String t=""; while (st.hasMoreElements()) t += st.nextElement(); return t;
Edit : un pas à pas approfondi et un remplacement dynamique de variable m'a indiqué que dans mon "1 000,00" le caractère situé entre le "1" et premier "0" n'est pas un espace. Mais alors moi je vois pas ce que ça peut être![]()
Salut,
Le replaceAll("\\s+", "") devrait normalement suffire...
Je pense que le problème vient du fait que tu utilises un NumberFormat pour formater les chaines, et qu'en français on utilise comme séparateur de millier un espace non-sécable (code \u00a0 au lieu du \u0020 des espaces "standards") qui n'est pas inclut dans l'expression \\s.
Deux solutions :
- Soit tu utilises la méthode setGroupingUsed(false) pour empêcher le NumberFormat d'utiliser le séparateur de millier.
- Soit tu rajoutes le caractère insécables dans ton expression :
a++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public static String removeSpaces(String s) { return s.replaceAll("[\\s\u00a0]+", ""); }
loué sois-tu adiGuba !
Merci ce coup ci ça fonctionne et je vais pouvoir dormir cette nuit !
![]()
Partager