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.
Version imprimable
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 :
Citation:
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:
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:
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:
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)Citation:
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:
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" ;)Citation:
Envoyé par skeltryx
juste une petite correction :
Code:
1
2
3
4int i=5 while(s.charAt(++i).isdigit) s2 += s.charAt(i);
oui en effet désolé j'ai pas fait gaf :roll: