Java suppression lettres dans String

[Fermé]
Signaler
-
 zazzou -
Bonjour,

J'ai une String (en java) et j'aimerai retirer de cette String tous les caractères qui ne sont pas des chiffres.

ex: String_de_Départ = "12zer45aaz43" --> String_darrive = "124543"

merci de votre aide

7 réponses

sinon pour faire simple, une expression reguliere (voir ftp://ftp-developpez.com/cyberzoide/java/regex.pdf) :

String text = "12zer45aaz43";
text=text.replaceAll("\\D+","");
6
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci


Voilà une solution :
package test.regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ExpReg {
	public static void main(String[] args) {
		Pattern p = Pattern.compile("[0-9]*");
		Matcher m = p.matcher("12zer45aaz43");
		StringBuffer sb = new StringBuffer();
		while (m.find()) {
			String texte = m.group();
			if (!texte.equals(""))
				sb.append(texte);
		}
		System.out.println(sb.toString());
	}
}
Bonne continuation ;-)
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
par contre declare tes variables avant le "for"(c'est plus propre...) j'ai pas eu le temps de le faire ! :)
char c;
int castC ;
string motfinal;
for(int i=0 ; i<string_depart.length;i++){
c= string_depart.chartAt(i);
castC =(int)c;//on recupere son code ascii 
...
Merci velderama ta méthode marche bien,
dsl =[Cvrd]=Tassin je n'ai pas testé la tienne
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
Au plaisir... ;)

La solution de velderama est correcte sauf si la table ASCII change de code un jour... A bon entendeur...

(PS : N'oublie pas de passer ton post en "Résolu")
sinon pour faire simple une expression reguliere (voir ftp://ftp-developpez.com/cyberzoide/java/regex.pdf) :

String text = "12zer45aaz43";
text=text.replaceAll("\\D+","");
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
Essaie ceci
string motfinal;
for(int i=0 ; i<string_depart.length;i++){
char c= string_depart.chartAt(i);
int castC =(int)c;//on recupere son code ascii 
if(castC<=057 && castC>=48)//le code ascii des entiers 0 a 9
{motfinal = motfinal+c;//ajout du caractere dans la chaine
}
}


un lien pour le code ascii des caracteres http://cosmos2000.chez.com/Nombres/ASCII.html
Par contre j'ai pas tester car ca fait longtemps que je ne fais plus de java mais c'est dans cette voie la!

Bonne chance