Bonjour.
Voilà j'ai un petit problème... Je cherche une fonction java qui parcoure une chaîne et qui enlève les espaces inutiles (au début, à la fin) et remplacer les espaces successifs par un seul.
Merci d'avance !
Version imprimable
Bonjour.
Voilà j'ai un petit problème... Je cherche une fonction java qui parcoure une chaîne et qui enlève les espaces inutiles (au début, à la fin) et remplacer les espaces successifs par un seul.
Merci d'avance !
Ma foi je ne connais pas de méthode normalize() fournie dans Java de base.
Mais on peut s'en sortir avec trim() qui enlève les espaces devant et derrière, et un replaceAll() avec regex qui remplace les espaces consécutifs par un seul :
Code:
1
2
3 String s = " Les demons de minuuuiiiiiiit "; s = s.trim().replaceAll(" +", " "); System.out.println("[" + s + "]");
Ouais, je connais cette méthode.
Je recherche un algorithme plus consistant avec i comme indice du premier caractère et j l'indice du dernier. Ainsi en parcourant la chaîne de i à j on élimine les espaces inutiles.
Ça commence à être plutôt spécialisé, ton machin.
- substring(i, j)
- méthode décrite au-dessus
- concaténation de substring(0, i) ; du résultat du trimming ; et de substring(j)
En utilisant s.charAt () pour trouver la valeur du caractère, mais après je vois pas comment on fait quand on trouve plusieur fois d'affilé un espace pour le remplacer par le caractère suivant.
ben si tu veux faire à la main:
toCharArray() pour avoir un tableau de char[]
tu fais ta popotte inutle
new String(char[]) et tu reconstruit la String
Je veux juste construire un parcour et remplacer. C'est assez long comme méthode je sais mais j'aimerai bien trouver...
De toute façon on ne peut pas modifier une String, ce sont des objets immutables.
Si tu veux travailler sur une String au lieu de faire un simple replaceAll() comme je l'ai dit, tu devrais te pencher vers StringBuilder. Il y a la méthode delete() qui te permettra d'effacer une plage de caractères après que tu aies déterminé que ce sont des espaces consécutifs.
C'est bien inutile de se compliquer la vie ainsi, mais bon.