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

avec Java Discussion :

Compter occurrence de chaque mot dans une String


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 14
    Points : 15
    Points
    15
    Par défaut Compter occurrence de chaque mot dans une String
    Bonjour,

    J'ai trouvé une méthode qui permet de compter les occurrences de chaque mots d'un fichier.txt, j'ai testé le code ça fonctionne bien.
    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
    39
    40
    import java.io.*;
    import java.util.*;
     
    class CompterMots
    {
      public static void main (String[] argv) throws IOException
        {
          Hashtable table = new Hashtable();
          BufferedReader entree = new BufferedReader(new FileReader(argv[0]));
          String ligne;
          StringTokenizer st;
          String mot;
          int nbOcc;
     
          while ((ligne = entree.readLine()) != null)
    	{
    	  st = new StringTokenizer(ligne, " ,.;:_-+*/\\.;\n\"'{}()=><\t!?");
    	  while(st.hasMoreTokens())
    	    {
    	      mot = st.nextToken();
    	      if (table.containsKey(mot))
    		{
    		  nbOcc = ((Integer)table.get(mot)).intValue();
    		  nbOcc++;
    		}
    	      else nbOcc = 1;
    	      table.put(mot, new Integer(nbOcc));
    	    }
    	}
     
          Enumeration lesMots = table.keys();
          while (lesMots.hasMoreElements())
    	{
    	  mot = (String)lesMots.nextElement();
    	  nbOcc = ((Integer)table.get(mot)).intValue();
    	  System.out.println("Le mot " + mot + " figure " +
    			     nbOcc + " fois");
    	}
        }
    }

    Seulement j'aimerais adapter ce code pour en faire une méthode qui prend une String en paramètre d'entrée et non un fichier .txt
    Et j'avoue que je suis un peu paumé. Je pensais la transformer en une méthode du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    {
      public static void compterMot (String text) throws IOException
        {
          Hashtable table = new Hashtable();
          BufferedReader entree = new BufferedReader(text); 
          String ligne;
          StringTokenizer st;
          String mot;
          int nbOcc;
     
          while ((ligne = entree.readLine()) != null)7
    // ...
    Comment je fais pour "lire" la String passé en paramètre ? Parceque les bufferreader ne lisent pas de String.

  2. #2
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut
    Bonsoir,
    Peut être ca
    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
     public static void compterMot (String text) throws IOException
        {
          Hashtable table = new Hashtable();
          BufferedReader entree = new BufferedReader(new FileReader(argv[0]));
     
          StringTokenizer st;
          String mot;
          int nbOcc;
     
     
    	  st = new StringTokenizer(text, " ,.;:_-+*/\\.;\n\"'{}()=><\t!?");
    	  while(st.hasMoreTokens())
    	    {
    	      mot = st.nextToken();
    	      if (table.containsKey(mot))
    		{
    		  nbOcc = ((Integer)table.get(mot)).intValue();
    		  nbOcc++;
    		}
    	      else nbOcc = 1;
    	      table.put(mot, new Integer(nbOcc));
    	    }
     
     
          Enumeration lesMots = table.keys();
          while (lesMots.hasMoreElements())
    	{
    	  mot = (String)lesMots.nextElement();
    	  nbOcc = ((Integer)table.get(mot)).intValue();
    	  System.out.println("Le mot " + mot + " figure " +
    			     nbOcc + " fois");
    	}
        }
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 14
    Points : 15
    Points
    15
    Par défaut
    Super ça fonctionne merci beaucoup !

    (J'ai viré la ligne du bufferreader qui servait plus à rien du coup)


    Bonne soirée

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

Discussions similaires

  1. extraire mots dans une string
    Par scarfunk dans le forum VB.NET
    Réponses: 13
    Dernier message: 23/04/2010, 15h07
  2. compter le nombre de mots dans une chaine en php
    Par hadjiphp dans le forum Langage
    Réponses: 6
    Dernier message: 22/04/2009, 21h20
  3. Réponses: 4
    Dernier message: 04/03/2009, 10h18
  4. compter le nombre de mot dans une ligne fichier sous shell
    Par ninsekh dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 18/12/2008, 17h54
  5. garder les 2eres lettres de chaque mot dans une colonne
    Par infiniti dans le forum Langage
    Réponses: 3
    Dernier message: 01/06/2008, 17h01

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