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
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    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 Expert
    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
    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
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    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 Expert
    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
    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 expérimenté Avatar de @ldehan
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 215
    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 chevronné Avatar de gronono
    Inscrit en
    Novembre 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2003
    Messages : 457
    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 expérimenté Avatar de @ldehan
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 215
    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 éprouvé
    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 : 40
    Localisation : Chine

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    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

  9. #9
    Membre chevronné Avatar de gronono
    Inscrit en
    Novembre 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Âge : 43

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

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    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 Expert
    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
    Par défaut
    Dans ton cas, je crois qu'il vaut mieux utiliser les expressions rationelles (regular expressions).

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

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

    Meurci d'avance ^^

  13. #13
    Membre Expert
    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
    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 confirmé
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    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, 16h19
  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, 17h27
  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, 10h36
  4. [RegEx] Compter le nombre d'occurences d'un mot
    Par Shuny dans le forum Langage
    Réponses: 10
    Dernier message: 19/12/2009, 19h58
  5. Réponses: 8
    Dernier message: 18/01/2005, 11h58

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