[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 !!!
Configuration: Windows XP
Firefox 2.0

9 réponses

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

      Merci
      0
      1. 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
      2. 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
  2. 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
  3. 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
  4. Bj0 Messages postés 74 Statut Membre 21
     
    mais ce que tu met dans ton tableau fait tjrs 2 caracteres?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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