import java.io.*; import java.util.*; class CompterMots { public static void main(String[] argv) { // le parametre est-il précisé ? if (argv.length < 1) { System.err.println("usage : java CompterMots fichier_texte"); } // on crée la table de hashing // qui contiendra les mots (String) en clé // et les nombres d'occurence (Integer) en valeur Hashtable table = new Hashtable(); BufferedReader entree = new BufferedReader(new FileReader(argv[0])); String ligne; StringTokenizer st; // lecture du fichier ligne à ligne while ((ligne = entree.readLine()) != null) { // creation du découpeur de ligne st = new StringTokenizer(ligne, " ,.;:_-+*/\\.;\n\"'{}()=><\t!?"); while (st.hasMoreTokens()) { String mot = st.nextToken(); // le résultat de table.get est un Integer ou null Integer obj = table.get(mot); if (obj == null) { System.err.println("nouveau mot "+mot); // emballage automatique dans un objet de type // Integer table.put(mot, 1); } else { System.err.println("increment pour mot "+mot); // déballage automatique d'un Integer en int int prec = obj; table.remove(mot); table.put(mot, prec+1); } } } // ne pas oublier de fermer le fichier entree.close(); } }