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

Java Discussion :

Concernant la classe StringTokenizer


Sujet :

Java

  1. #1
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 873
    Points : 3 717
    Points
    3 717
    Par défaut Concernant la classe StringTokenizer
    Bonsoir,

    Voilà j'ai voulu apprendre à utiliser la classe StringTokenizer, j'ai fait ce petit test :

    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
    import java.util.StringTokenizer;
     
     
    public class ClassMain {
     
        public static void main(String[] args) {
            // TODO Auto-generated method stub
     
            String str = "1 8 9 11 123 91";        
            StringTokenizer st = new StringTokenizer(str);
            int i = 1 ;    
     
            while (st.hasMoreTokens())
                System.out.println("Le nombre " + i++ + " est " + st.nextToken());
     
        }
     
    }
    Le résultat est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Le nombre 1 est 1
    Le nombre 2 est 8
    Le nombre 3 est 9
    Le nombre 4 est 11
    Le nombre 5 est 123
    Le nombre 6 est 91
    Cela fonctionne apparemment mais maintenant mon problème c'est comment faire pour travailler sur une nouvelle chaine ? Est-ce que je suis obligé de passer par le constructeur en "créant" un autre objet à chaque fois ? Genre si j'ai 100 chaines issu d'un fichier par exemple, je dois "créer" 100 objets ?

    Dans une page web j'ai vu que la méthode void setString(string str) était citée mais je n'ai pas réussi à l'utiliser (si ça se trouve ce n'est même pas du Java...)

    Merci.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    Citation Envoyé par Beginner. Voir le message
    Cela fonctionne apparemment mais maintenant mon problème c'est comment faire pour travailler sur une nouvelle chaine ? Est-ce que je suis obligé de passer par le constructeur en "créant" un autre objet à chaque fois ? Genre si j'ai 100 chaines issu d'un fichier par exemple, je dois "créer" 100 objets ?
    Oui. Il n'y a pas que StringTokenizer dans la vie, mais d'une manière ou d'une autre, ça marchera comme ça.

    Tu peux toujours utiliser split() à la place par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int i = 1 ;
    for(String token : str.split(" ")) {
      System.out.println(i + ": " + token);
      i++;
    }
    Mais ça ne fait pas spécialement de différence.

    Citation Envoyé par Beginner. Voir le message
    Dans une page web j'ai vu que la méthode void setString(string str) était citée mais je n'ai pas réussi à l'utiliser (si ça se trouve ce n'est même pas du Java...)
    Non, en effet.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 873
    Points : 3 717
    Points
    3 717
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Hello,



    Oui. Il n'y a pas que StringTokenizer dans la vie, mais d'une manière ou d'une autre, ça marchera comme ça.
    Merci et +1 et résolu...

    Oui il n'y a pas que ça mais je suis tombé dessus en cherchant un équivalent de la fonction sscanf du C, c'est un des moyens parmi tant d'autres apparemment, je ne sais pas lequel est le meilleur, je compte tous les essayer dans un premier temps...

    Citation Envoyé par thelvin Voir le message

    Tu peux toujours utiliser split() à la place par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int i = 1 ;
    for(String token : str.split(" ")) {
      System.out.println(i + ": " + token);
      i++;
    }
    Mais ça ne fait pas spécialement de différence.
    Je ne connaissais pas et c'est toujours bon à savoir...


    Citation Envoyé par thelvin Voir le message

    Non, en effet.
    La classe ressemble assez à celle du Java, je me demande c'est quel langage, j'ai vu ça ici : http://www.enib.fr/~harrouet/Data/oR....htm#setString. C'est dommage qu'il n'y ait pas cela en Java mais bon...

    PS : Si le lien n'est pas acceptable vous pourrez l'effacer...


    J'ai testé en faisant cela :

    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
    import java.util.StringTokenizer;
     
     
     
     
    public class ClassMain {
     
        public static void main(String[] args) {
     
            String str = "1 8 9 mot  91 3.6 (x,y)";        
            StringTokenizer st = new StringTokenizer(str);
            int i = 1 ;    
     
            while (st.hasMoreTokens())
                System.out.println("Token n°" + i++ + " est " + st.nextToken());
     
            System.out.println();        
            i = 1 ;
     
            str = "1 3 5 mot lol ";        
            st = new StringTokenizer(str);    
            while (st.hasMoreTokens())
                System.out.println("Token n°" + i++ + " est " + st.nextToken());
     
        }
     
    }
    Le résultat est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Token n°1 est 1
    Token n°2 est 8
    Token n°3 est 9
    Token n°4 est mot
    Token n°5 est 91
    Token n°6 est 3.6
    Token n°7 est (x,y)
     
    Token n°1 est 1
    Token n°2 est 3
    Token n°3 est 5
    Token n°4 est mot
    Token n°5 est lol
    Quand on fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            String str = "1 8 9 mot  91 3.6 (x,y)";        
            StringTokenizer st = new StringTokenizer(str);
     
    ...
     
            str = "1 3 5 mot lol ";        
            st = new StringTokenizer(str);
    Est-ce qu’après avoir fait " st = new StringTokenizer(str); " la mémoire occupée par le précédent objet est libérée automatiquement ou il faut faire quelque chose pour ça ?

    Merci.

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

Discussions similaires

  1. besoin d'explications.. flex - flash concernant les classes
    Par italya dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 27/03/2010, 11h43
  2. Réponses: 0
    Dernier message: 11/02/2010, 17h49
  3. P'tite question concernant les Class ou Module
    Par arnofly dans le forum VB.NET
    Réponses: 15
    Dernier message: 18/04/2009, 17h01
  4. la classe StringTokenizer
    Par ranell dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 23/03/2007, 13h07
  5. Réponses: 7
    Dernier message: 10/09/2004, 14h28

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