[JAVA] Parser une chaine de caractere

Pyrodelph -  
 PyroDelph -
Bonjour,

jai un petit probleme
je recherche le moyen de decomposer un chaine de caractere de style :
02 E5 01 02 03
dans un tableau
case 1 : 02
case 2 : E5
case 3 : 01
etc...

merci de votre aide et dite moi si ce nest pas tres clair !!!
A voir également:

9 réponses

hotrod
 
Une bonne petite expression régulière et hop tu l'auras ton tableau
4
Kerrighan
 
Salut,
Pourrais tu expliquer comment faire avec une Exp Reg?
Cela m'interesse.

Merci
0
ekra Messages postés 1873 Statut Membre 342 > Kerrighan
 
Salut, j'ai pas vérifié, mais avec quelque chose dans le genre, tu dois pouvoir t'en sortir.
public class Decouper {
	private String chaine = new String("02 E5 01 02 03");
	private LinkedList<String> liste = new LinkedList();
	
	StringTokenizer st = new StringTokenizer(chaine," ");
	while ( st.hasMoreTokens() ) {
		liste.add(st.nextToken());
	}

}
0
ekra Messages postés 1873 Statut Membre 342 > ekra Messages postés 1873 Statut Membre
 
Il manque la méthode bien sûre :p
0
Bj0 Messages postés 74 Statut Membre 21
 
utilise la fonction substring

String chaine;
String tableau[];

for (int i=0; i<tableau.length()/3 ; i++){
tableau[i]= chaine.substring(i *3,( i*3)+2);
}

c'est un truc dans le genre
0
Pyrodelph
 
euh c pas trop clair pour moi ce que tu as marquer mais pour plus de precision, les chaine de caraceter peuvente etre plus longue
en faite il me faudrais une sorte de parseur mais je ne les comprend pas tres bien
0
Bj0 Messages postés 74 Statut Membre 21
 
mais ce que tu met dans ton tableau fait tjrs 2 caracteres?
0

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

Posez votre question
Bj0 Messages postés 74 Statut Membre 21
 
en plus de ca je me sui gouré dans le code !!! honte a moi :S

String chaine; // la chaine de caractere que tu veu décomposer
String tableau[]; // le tableau dans laquel tu veu stocker tes données

for (int i=0; i<(chaine.length()-1)/3 ; i++){ // tant que tu n'est pa a la fin de la chaine
tableau[i]= chaine.substring(i *3,( i*3)+2); // il découpe cette chaine pour prendre les valeur ( de deux caractere) a mettre dans le tableau
}

si tes valeur ne font pa tjrs 2 caractere il faudra repéré les espace dit moi si c'est le cas

(chaine.length()-1)/3 renvoi le nombre de "morceau" dans ta chaine ( si il y a tjrs 2 caractere a tes morceaux)...
0
PyroDelph
 
il est possible quil y est plus de caractere
mais la chaine de caractere a decomposer vien dun bufferedReader
et le code que tu ma donner, jy avais deja penser sauf que quand jexecute, il me donne une exeception dans thread main a la ligne ou sinsere un morceau de chaine dans la tableau
= tableau [i] = chaine.substring....

voici mon nouveau probleme !!
0
zefoots Messages postés 146 Statut Membre 62
 
Essaie de voir si tu ne peux pas te débroyer avec la class java.util.StringTokenizer
J'ai l'impression que c'est ce qu'il te faut ...
0
ekra Messages postés 1873 Statut Membre 342
 
0
Kerrighan
 
Merci Ekra en effet, en utilisant les tokens cela fonctionne parfaitement, c'est la solution que j'avais implanté mais je voulais juste que l'on m'explique comment le faire à l'aide des Exp Reg (juste par curiosité car les ressources sur le sujet son pauvres sur le net :( )
0
PyroDelph
 
Salut a tous
merci de m'avoir aider
au final j'ai utiliser les string tokenizer qui fonctionne tres bien, je vais donc pouvoir bientot clore ce sujet s'il n'y a pa d'objection

++
0