Précédent   Forum des professionnels en informatique > Java > Général Java > Langage
Langage Forum d'entraide sur le langage Java et autres langages pour la JVM : syntaxe, POO, conventions, API standard. Avant de poster -> FAQ Java
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/02/2012, 13h40   #1
Membre expérimenté
 
Avatar de bricecol
 
Brice Colucci
Développeur informatique
Inscription : avril 2007
Messages : 357
Détails du profil
Informations personnelles :
Nom : Brice Colucci
Âge : 23

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : avril 2007
Messages : 357
Points : 544
Points : 544
Envoyer un message via MSN à bricecol Envoyer un message via Skype™ à bricecol
Par défaut Suppression espaces chaîne

Bonjour à toutes et à tous.

Je suis confronté à un problème très étrange. Je souhaite supprimer tous les espaces dans une chaîne (au début, au milieu et à la fin, partout).

Ces chaînes proviennent d'un fichier CSV que je parcours.

Normalement, un simple :
Code :
s = s.replace(" ", "");
devrait fonctionner... Or je me bat depuis 1 heure et j'ai presque tout essayé !

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
// str est la chaîne que je reçois
// StringUtils vient de apache commons lang
 
String s = StringUtils.defaultString(str);
 
s = StringUtils.trim(s);
s = StringUtils.strip(s);
s = s.replaceAll(" ", "");
s = s.replaceAll("\\s", "");
s = s.replaceAll("/\\s/", "");
s = s.replace(" ", "");
s = StringUtils.remove(s, ' ');
s = StringUtils.remove(s, " ");
Rien n'y fait, je suis blasé

Quelqu'un aurait une idée ?
Merci d'avance pour votre aide, c'est la première fois qu'un truc aussi c** m'arrive !
__________________
"Computers are like Old Testament gods ; Lots of rules and no mercy"
[ Les ordinateurs sont comme les dieux de l’Ancien testament ; Beaucoup de règles et aucune pitié. ] Joseph Campbell

Dénoncez les arnaques internet !
Consulter mon C.V. en ligne.
bricecol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 13h52   #2
Membre expérimenté
 
Avatar de bricecol
 
Brice Colucci
Développeur informatique
Inscription : avril 2007
Messages : 357
Détails du profil
Informations personnelles :
Nom : Brice Colucci
Âge : 23

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : avril 2007
Messages : 357
Points : 544
Points : 544
Envoyer un message via MSN à bricecol Envoyer un message via Skype™ à bricecol
Je viens de trouver, désolé, voici pour ceux qui en auront besoin :
Code :
s = s.replace(String.valueOf((char) 160), "");
__________________
"Computers are like Old Testament gods ; Lots of rules and no mercy"
[ Les ordinateurs sont comme les dieux de l’Ancien testament ; Beaucoup de règles et aucune pitié. ] Joseph Campbell

Dénoncez les arnaques internet !
Consulter mon C.V. en ligne.
bricecol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 14h18   #3
Expert Confirmé Sénior
 
Inscription : septembre 2004
Messages : 5 101
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 101
Points : 7 027
Points : 7 027
Le char 160, caractère Unicode U+A0, n'est pas un espace normal mais un espace insécable.

Pour supprimer tout ce qui est défini dans Unicode comme un caractère d'espacement en ligne :

Code :
s = s.replaceAll("\\p{Zs}", "");
Zs est la catégorie Unicode correspondant aux espaces en ligne (c'est-à-dire les espaces à l'intérieur d'un paragraphe, pas mais les fins de ligne ni les tabulations ni les sauts de page...)

\\p{Zs} correspond à un caractère de cette catégorie dans les expressions régulières java.
replaceAll() fait un replace de tout ce qui correspond à cette expression régulière.
thelvin est déconnecté   Envoyer un message privé Réponse avec citation 20
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h32.


 
 
 
 
Partenaires

Hébergement Web