Bonjour,
J'ai une chaine de la forme "Nombre 2 yyyyyyyyyyyy" et je veux extraire l'entier qui vient juste après "Nombre" mais je veux le résultat de type entier.








Bonjour,
J'ai une chaine de la forme "Nombre 2 yyyyyyyyyyyy" et je veux extraire l'entier qui vient juste après "Nombre" mais je veux le résultat de type entier.
Salut,
Tu peux utiliser StringTokenizer(), récupérer la 2ème partie et la convertir en int ou Integer![]()
Utilise plutôt String.split , car dans la javadoc de StringTokenizer on peut lire :
StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.
un exemple qui t'aidera :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 import java.util.*; //importer le package public class version extends Applet { String s="10,15,24,36,,78;47,26 38,45,9";//chaîne à découper int Tab[] = new int[10]; //tableau des valeurs public void paint(Graphics g) { int i=0; StringTokenizer st =new StringTokenizer(s,"; ,");//3 séparateurs ; , et blanc while (st.hasMoreTokens()){ //boucle de lecture Tab[i]=Integer.parseInt(st.nextToken()); //éléments du tableau g.drawString(""+Tab[i],20,20+15*i); i++;}} }
Sans StringTokenizer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 String s = "Nombre 2 yyyyyyyyyyyy"; int i = new Integer(s.split(" ")[1]);
Si le nombre est toujours au même endroit, tu peux utiliser simplement substring.
Dans ton exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 String s = "Nombre 2 yyyyyyyyyyyy"; String s2 = s.subString(6,6);








Merci ça marche bien.
Il faut dans ce cas que la valeur soit <10 ... et puis alors autant faire un charAt(6)Envoyé par skeltryx
la méthode split est la plus simple et la plus adaptée je trouve ...
oui c'est pour ca que j'ai précisé qu'il fallait que les nombres fassent toujours la meme longueur.
Apres on peut faire quelque chose dans ce genre:
je ne suis pas très sur de la syntaxe j'ai pas de compilateur sous la main...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 String s = "Nombre 2 yyyyyyyyyyyy"; String s2 = new String(""); int i = 6; while(s.charAt(i).isdigit) s2 = s2 + s.charAt(i);
Ben tu précisais qu'il fallait qu'il soit au même "endroit"Envoyé par skeltryx
![]()
juste une petite correction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4int i=5 while(s.charAt(++i).isdigit) s2 += s.charAt(i);
Partager