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 :

Récuperer des morceaux d'une chaine de caracteres


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 57
    Par défaut Récuperer des morceaux d'une chaine de caracteres
    Bonjour,

    Dans un de mes web services, je récupère un fichier plat avec plusieurs parametres:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    parametre1;parametre2;parametre3;parametre4
    Le problème c'est que le le parametre 3 peut être null:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    parametre1;parametre2;;parametre4
    Dans mon code java je cree un stringtokenizer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    StringTokenizer param = new StringTokenizer(args[1],";");
    //Pour aller au parametre suivant:
    String param1 = param.nextToken();
    Si tous mes parametres sont remplis, ca fonctionne parfaitement, en revanche si il me manque un parametre (exemple: en ayant un parametre3 égal à null), il m'affecte le parametre suivant au lieu de me le declarer à null ( parametre3 = parametre4)

    Y aurait il moyen de forcer un champ blanc a renvoyer null au lieu de passer au parametre suivant?

    Peut être que c'est plus simple avec un StringBuffer? Si oui comment pourais-je faire cette manipulation?

    Merci d'avance pour vos réponses,

  2. #2
    Membre expérimenté Avatar de wace
    Inscrit en
    Septembre 2003
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 224
    Par défaut
    Pourquoi n'essaie tu pas d'utiliser la methode Split de l'objet String ?

    Cette methode te permet de contruire un String[] a partir d'une String en fonction d'une chaine de caractere

  3. #3
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    En réalité tes paramètres ressemblent plus à un format CSV. Comme ce format n'est pas normalisé strictement (étonnant hein ? mais bien réel) c'est toujours amusant à prendre en compte. Mais le plus souvent, on considère que si ton paramètre 1 doit contenir le séparateur de champ, le séparateur sera précédé d'une séquence d'échappement.
    Mais si tu es sur que tes paramètres ne peuvent contenir de ";", alors tu peux remplacer ton StringTokenizer par ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String param = "parametre1;parametre2;;parametre4";
    String[] decoupe = param.split(";");

  4. #4
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Et comme ça ?
    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
        public static void main(String[] args) 
        {
          String chaine1 = "parametre1;parametre2;parametre3;parametre4";
          String chaine2 = "parametre1;parametre2;;parametre4";
          String[] splité;
     
          System.out.println("Chaine1");
          splité = chaine1.split(";");
          for (String item : splité)
            System.out.println("item="+item);
          System.out.println("Chaine2");
          splité = chaine2.split(";");
          for (String item : splité)
            System.out.println("item="+item);
        }
    donne :
    Chaine1
    item=parametre1
    item=parametre2
    item=parametre3
    item=parametre4
    Chaine2
    item=parametre1
    item=parametre2
    item=
    item=parametre4

Discussions similaires

  1. [debutant] Faire des espaces dans une chaine de caracteres ?
    Par junior68 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/06/2009, 23h37
  2. Extraction des mots d'une chaine de caractere
    Par ahd261 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 09/04/2009, 19h16
  3. Réponses: 1
    Dernier message: 07/04/2009, 11h21
  4. tansformer des chifres a une chaine de caractere
    Par maili20 dans le forum SQL
    Réponses: 1
    Dernier message: 04/12/2007, 11h22
  5. Réponses: 3
    Dernier message: 31/01/2005, 23h18

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