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"
Version imprimable
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:
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...
Citation:
Envoyé par Kh4iN3
Sa marche :king:Citation:
Envoyé 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:
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:
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:
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 8O
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:
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 !
:merci: