IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Solution efficace pour parser et decoder un String


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Solution efficace pour parser et decoder un String
    Salut,

    J'ai un problème je ne sais pas comment ressoudre en Java d'une façon efficace.

    Disons que je reçoit une String comme la suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    PARAMETER1=value1;
    PARAMETER2=value2;
    PARAMETER3=value3;
    PARAMETER4=value4;
    PARAMETER5=value5;
    PARAMETER6=value6;
    ...
    L'ordre des parametres n'est pas fixe.
    Et je veux parser et decoder cette String pour finalement avoir un object d'une class comme la suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class Parameters{
     
     public type1 param1,
                      param2;
     public type2 param3,
                      param4;
     public type3 param5;
     public type4 param6;
    ...
    }
    où les valeurs trouvés dans le String soient affectes aux parametres correspondant.

    Parser la String ne pose pas aucun problème.

    Est pour savoir quelle variable de ma class Parameters affecter, la seul solution que je trouve c'est de introduire chaque PARAMETERS string dans un hashtable, qui me donne un numero different pour chaque PARAMETER et apres faire un switch. C-a-d:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    setHastable(){
     Hashtable tbl= new Hastable();
     tbl.put("PARAMETER1", 1);
     tbl.put("PARAMETER2", 2);
     tbl.put("PARAMETER3", 3);
    ...
    }
     
    decodeParameterString(String paramStr, Object value, Parameter param){
     int n = tbl.get(paramStr)
     switch(n){
       case 1:
         param.parameter1 = (type1) value;
         break;
      case 2:
         param.parameter2 = (type1) value;
         break;
      ...
     }
    }
    En C, un solution plus efficace serait de donner dans la hastable le offset de chaque parametre dans un structure et son type.

    Est-ce que en Java il existe une solution plus efficace que celle que j'ai montré ici??

    Merci!!

    Manu

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    La chaîne que tu nous décris ressemble à s'y méprendre à un fichier "properties".

    Utiliser une HashMap (plutôt qu'une hashtable) pour faire correspondre les clés et les valeurs est effectivement la bonne méthode.

    Maintenant, pour les fichiers properties, il existe une classe qui gère ça: java.util.Properties
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

Discussions similaires

  1. Parser un hexa en String pour obtenir un byte
    Par Djobird dans le forum Langage
    Réponses: 4
    Dernier message: 30/04/2009, 13h55
  2. Réponses: 4
    Dernier message: 26/03/2008, 14h28
  3. Probleme pour parser une String en Date
    Par DrTank dans le forum Langage
    Réponses: 3
    Dernier message: 04/05/2007, 19h19
  4. comment utiliser Scanner pour parser un String?
    Par ricardvince dans le forum Langage
    Réponses: 4
    Dernier message: 03/10/2006, 14h15
  5. Réponses: 2
    Dernier message: 23/01/2006, 15h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo