[JAVA] Parser une chaine de caractere

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

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

      Merci
    2. @KerrighanSalut, 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());
      	}
      
      }
    3. @ekraIl manque la méthode bien sûre :p
  2. 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
    1. 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
      1. 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)...
        1. 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 !!
          1. 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 :( )
            1. 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

              ++