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

Entrée/Sortie Java Discussion :

Lecture d'un token composé de plusieurs mots


Sujet :

Entrée/Sortie Java

  1. #1
    Membre confirmé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Points : 594
    Points
    594
    Par défaut Lecture d'un token composé de plusieurs mots
    Bonsoir,

    en fait le titre n'est pas très explicite.
    Je cherche à lire une phrase comme si c'etait un mot. Je m'explique

    supposons que j'ai un fichier genre annuaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    TOTO 10, rue du chien  0000023224
    TITI  40, boulevard de la victoire 3211588522
    ...
    Le premier mot correspond au nom, le dernier au numero de telephone, mais ce qu'il y'a entre represente l'adresse du client.

    Cependant lorsque j'utilise la methode nextToken() de StringTokeniser il va evidement me decouper ma chaine du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Token1: TOTO
    Token2: 10,
    Token3: rue
    Token4: du 
    Token5: chien
    Token6: 0000023224
    alors que moi je voudrait que le token2 soit "10, rue du chien ".

    comment faire??
    Merci d'avance.

  2. #2
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 192
    Points : 252
    Points
    252
    Par défaut
    Bonjour,

    une expression régulière te sortira d'affaire
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    package test;
     
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
     
    public class TokenReader {
        private String[] dictionnary;
        private static final Pattern dictionnaryPattern = Pattern.compile("([A-Z]+)\\s+(.+?)\\s+([0-9]+)");
        public TokenReader(String[] d) {
            dictionnary = d;
        }
     
     
        public void analyze() {
            for (String line : dictionnary) {
                Matcher m = dictionnaryPattern.matcher(line);
                System.out.println("Analysing line: " + line);
                if (m.matches()) {
                    System.out.println("  type: " + m.group(1));
                    System.out.println("  adress: " + m.group(2));
                    System.out.println("  tel: " + m.group(3));
                }
            }
        }
     
        /**
         * @param args
         */
        public static void main(String[] args) {
            String[] annuaire = new String[] {
                    "TOTO 10, rue du chien  0000023224"
                    ,"TITI  40, boulevard de la victoire 3211588522"
            };
     
            TokenReader r = new TokenReader(annuaire);
            r.analyze();
        }
    }
    Bonne continuation...

  3. #3
    Membre confirmé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Points : 594
    Points
    594
    Par défaut
    Merci pour ta réponse,

    mais je voulais savoir s'il y'avait pas moyen de le faire avec StringTokenizer ?
    Car dans mon fichier j'ai plein d'autre type de chaine que je traite avec StringTokenizer et nextToken(), il n'y a que celles de types annuaire qui me pose problème.

    Donc je ne voulais pas faire un mix entre StringTokenizer et la méthode proposée ci dessus.

    Y'a t'il un autre moyen ?
    Merci beaucoup.

  4. #4
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    split, premier et dernier element :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String [] tableau=uneLIgne.split(" ");
    String premier=tableau[0];
    String dernier=tableau[tableau.length-1];

  5. #5
    Membre confirmé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Points : 594
    Points
    594
    Par défaut
    Merci IOHack pour ta reponse,

    mais peux tu m'expliquer comment fonctionne ton petit porgramme car je comprends pas tres bien

    Sinon est il possible de le faire avec une LinkedList ??

  6. #6
    Membre confirmé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Points : 594
    Points
    594
    Par défaut
    merci à tous pour vos réponses.
    J'ai résolu mon problème

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. trouver plusieurs mots sur page web et les surligner
    Par biggione dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 08/08/2006, 16h22
  2. Réponses: 12
    Dernier message: 16/05/2006, 18h47
  3. [MySQL] Recherche des plusieurs mots
    Par jbj dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/01/2006, 00h48
  4. Moteur de recherche et plusieurs mots clés
    Par jack1234 dans le forum Langage
    Réponses: 13
    Dernier message: 14/12/2005, 11h29
  5. Réponses: 6
    Dernier message: 04/11/2005, 18h09

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