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 :

Compter le nombre d'occurences d'un mot dans un texte


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Compter le nombre d'occurences d'un mot dans un texte
    Bonjour,
    J'aimerai savoir somment on fait en java pour compter le nombre de fois qu'appararait le mot "toto" dans mon texte.
    Je connais le nombre total de mot dans le texte (text) grâce à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    StringTokenizer s = new StringTokenizer(text, " \t,:'.?!_\"-(){}\\*");
    int nbremottotal = s.countTokens();
    Mais je ne vois pas comment compter le nb d'occurences du mot "toto" dans ce texte.
    S'il vous plait, aidez moi....

  2. #2
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Voici un moyen simple de la faire, mais à mon avis il doit y avoir mieux.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    StringTokenizer s = new StringTokenizer(text, " \t,:'.?!_\"-(){}\\*");
    int compteur =0;
    while(s.hasMoreTokens()){
         if(s.nextToken().equals("toto"){
                   compteur++;
         }
    }
     
    return compteur;


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Merci
    Pb avec le while, alors j'ai utilisé la boucle for, et tout marche, merci encore pour l'aide

  4. #4
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    C'était quoi le problème avec le while ?
    Il vaut mieux utiliser while car ça t'évite de calculer le nombre de tokens au préalable.


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  5. #5
    Membre actif Avatar de @ldehan
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 215
    Points : 278
    Points
    278
    Par défaut
    ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (;s.hasMoreTokens();){
       // comptage
    }
    si tu tiens a la boucle for

  6. #6
    Membre confirmé Avatar de gronono
    Inscrit en
    Novembre 2003
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2003
    Messages : 456
    Points : 482
    Points
    482
    Par défaut
    Citation Envoyé par @ldehan
    ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (;s.hasMoreTokens();){
       // comptage
    }
    si tu tiens a la boucle for

    Oh que c'est laid.
    Sans rentrer dans une polymique :
    moi si je vois dans un code que je dois relire c'est direct retour à l'envoyeur sans même lire la suite.

    Le mot clé while est justement fait pour éviter le for(;condition ; ){}

  7. #7
    Membre actif Avatar de @ldehan
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 215
    Points : 278
    Points
    278
    Par défaut
    Citation Envoyé par gronono
    Oh que c'est laid.
    Sans rentrer dans une polymique :
    moi si je vois dans un code que je dois relire c'est direct retour à l'envoyeur sans même lire la suite.

    Le mot clé while est justement fait pour éviter le for(;condition ; ){}
    je suis bien d'accord, c'etait une boutade

    suite au 2 posts précédents

  8. #8
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Citation Envoyé par gronono
    Sans rentrer dans une polymique :
    Du polymorphisme polémique ?

    Sinon, oui c'est moche mais ça marche. C'est comme faire un while avec un compteur au lieu de faire un for .

    mavina
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  9. #9
    Membre confirmé Avatar de gronono
    Inscrit en
    Novembre 2003
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2003
    Messages : 456
    Points : 482
    Points
    482
    Par défaut
    desolé pour la faute.

  10. #10
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    Bonjour à tous et toutes,

    Je me permet de déterrer...

    Je souhaîterais faire pareil qu'AlexandraS mais je voudrais aller plus loin. Je m'explique.

    J'ai une string qui ressemble à ceci:
    jdbc:oracle:thin:@(DESCRIPTION=(SOURCE_ROUTE=valeur)(ADDRESS=(PROTOCOL=TCP)(HOST=La_machine)(PORT=le_port))
    (ADDRESS=(PROTOCOL=TCP)(HOST=machine2)(PORT=numero_de_port))(CONNECT_DATA=(SID=nom_de_db)))
    Alors j'aimerais extraire machine2 de cette String. Sachant que machine2 à une nouvelle valeur à chaque itération de ma boucle. Enfin, à la place de machine2 y'a vraiment une String qui représente le nom du serveur quoi... et j'aimerais extraire la valeur qui suit cette deuxième occurrence de "host" dans cette String...

    (substring de machine2 ne fonctionne donc pas, puisque cette valeur n'est pas de taille fixe et tout et tout...)

    J'espère que vous voyez. J'ai essayé de trouver, mais j'arrive pas trop...

    Merci beaucoup.
    Bien à vous.
    Ouranos21

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Dans ton cas, je crois qu'il vaut mieux utiliser les expressions rationelles (regular expressions).

  12. #12
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    Et ça ressemblerait à quoi une regexp pour extraire machine2 ?

    Meurci d'avance ^^

  13. #13
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Dans ton cas à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    String regex = "\(HOST=(.*?)\)";
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher(maLoooooongueChaineIncomprehensible);
    if (matcher.matches()) {
      String monHôte = matcher.group(1);
    }

  14. #14
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    Merci Dingoth ^^

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

Discussions similaires

  1. compter le nombre d'occurences d'un mot dans une chaine
    Par huître dans le forum VBA Access
    Réponses: 8
    Dernier message: 15/10/2014, 15h19
  2. Compter le nombre d'occurences d'une chaine dans un texte
    Par tim91700 dans le forum Débuter
    Réponses: 5
    Dernier message: 02/04/2011, 16h27
  3. Compter le nombre d'occurences d'un mot dans une table
    Par Scots dans le forum Requêtes
    Réponses: 0
    Dernier message: 11/03/2011, 09h36
  4. [RegEx] Compter le nombre d'occurences d'un mot
    Par Shuny dans le forum Langage
    Réponses: 10
    Dernier message: 19/12/2009, 18h58
  5. Réponses: 8
    Dernier message: 18/01/2005, 10h58

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