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 :

StringTokenizer est il hasbeen ?


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 168
    Par défaut StringTokenizer est il hasbeen ?
    Bonjour, j'utilise StringTokenizer pour faire de la recherche dans une chaine de caratéres, mais il me semble qu'il existe qqchose de plus récent, mais je ne sais plus quoi.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     StringTokenizer st = new StringTokenizer(str1,".");
            while (st.hasMoreTokens()) 
                {
                    cT1 = st.nextToken();
                    ......
                }
    voila le code, si vous avez une idée merci

  2. #2
    Membre éprouvé
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Par défaut
    Citation Envoyé par nutix2003
    Bonjour, j'utilise StringTokenizer pour faire de la recherche dans une chaine de caratéres, mais il me semble qu'il existe qqchose de plus récent, mais je ne sais plus quoi.
    StringTokenizer st = new StringTokenizer(str1,".");
    while (st.hasMoreTokens())
    {
    cT1 = st.nextToken();
    ......
    }
    voila le code, si vous avez une idée merci
    Peut-être les expression régulière avec la classe RegEX et la fonction matches de String??

  3. #3
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    la classe scanner ?

    si ca marche pourquoi faire autrechose ?

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    UN bon vieux split sur ta chaîne (qui est d'ailleurs plus récent que le StringTokenizer, java 1.4 si je me souviens bien)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 168
    Par défaut
    Je pense, effectivement, que je vais utilser split
    merci

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 136
    Par défaut
    UN bon vieux split sur ta chaîne (qui est d'ailleurs plus récent que le StringTokenizer, java 1.4 si je me souviens bien)
    Heu oui, mais à ma connaissance le stringTokenizer a l'avantage de supporter plusieurs séparateurs. Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String maLigne="A,B.C-D.E\nF";
    new StringTokenizer(maLigne,",.-.\F");
    Va me sortir successivement A B C D E et F séparés ! Alors qu'avec le split un seul caractère de séparation est utilisé (dumoins je crois).

    Donc ça dépend de ce que tu as à faire...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 136
    Par défaut
    Oups... petite correction (pas testé mais j'espère que c'est juste cette fois)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new StringTokenizer(maLigne,",.-\n");

  8. #8
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par L. Sierra
    Alors qu'avec le split un seul caractère de séparation est utilisé (dumoins je crois).
    la méthode split() utilise une expréssion régulière.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 94
    Par défaut
    split() prend une regex, tu peux donc tout à fait mettre plusieurs séparateurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String[] toto = "1-2;3+4".split("[-;+]");
    System.out.println(toto.length);
    Edit: qq secondes trop lent.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 136
    Par défaut
    split() prend une regex, tu peux donc tout à fait mettre plusieurs séparateurs
    Ok au temps pour moi... !

    Alors le meileur moyen de savoir, c'est sans doute de faire un grand nombre d'opérations split() et nextToken() à la suite (genre 1000000 d'opérations dans un for) et voir ce qui prend le moins de temps, à l'aide de System.getCurrentTimeMillis (pas sûr du nom exact de la méthode).

    A+

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 136
    Par défaut
    Re-salut

    Si jamais, je viens de faire un test sur ma machine et j'obtiens une rapidité légèrement meilleure (environ 20% de gain) pour le StringTokenizer, mais uniquement si le nombre de tokens est connu à l'avance.

    S'il faut faire un countTokens() à chaque string lue alors le split() est nettement plus rapide (environ 50% de gain).

    Donc à utiliser selon le cas...

    A+

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

Discussions similaires

  1. Qu'est ce qu'un grand projet ?
    Par Geronimo dans le forum Débats sur le développement - Le Best Of
    Réponses: 62
    Dernier message: 04/04/2013, 14h52
  2. Quel est le meilleur script PHP de portail (CMS) ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 187
    Dernier message: 18/10/2012, 07h45
  3. [VB.NET] Quel est l'équivalent du StringTokenizer JAVA ?
    Par Benzeghiba dans le forum VB.NET
    Réponses: 3
    Dernier message: 14/05/2006, 17h36
  4. Quelle est la fiabilité du protocole SSL ?
    Par Anonymous dans le forum Développement
    Réponses: 5
    Dernier message: 05/09/2002, 13h31
  5. apprentissage du C est-il necessaire pour C++ ?
    Par Anonymous dans le forum C
    Réponses: 6
    Dernier message: 02/05/2002, 12h56

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