Java suppression lettres dans String

Fermé
JeanJean - 9 avril 2008 à 11:53
 zazzou - 14 sept. 2008 à 19:39
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
A voir également:

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
Utilisateur anonyme
9 avril 2008 à 13:35
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 ;-)
3
velderama Messages postés 199 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 11 mai 2011 10
10 avril 2008 à 10:08
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 
...
3
Merci velderama ta méthode marche bien,
dsl =[Cvrd]=Tassin je n'ai pas testé la tienne
2
velderama Messages postés 199 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 11 mai 2011 10
10 avril 2008 à 10:01
Au plaisir... ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
10 avril 2008 à 10:32
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")
2
sinon pour faire simple une expression reguliere (voir ftp://ftp-developpez.com/cyberzoide/java/regex.pdf) :

String text = "12zer45aaz43";
text=text.replaceAll("\\D+","");
2
velderama Messages postés 199 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 11 mai 2011 10
9 avril 2008 à 12:23
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
1