Dico en java

Quelqu un pourrait me donner des tuyaux pour programmer un dictionnaire en java objet sur un argument fichier texte merci.
Merci.

7 réponses

  1. Le parsing, dans la classe que je te transmet ci-dessous, se fait sur base du caractère d'espacement. A toi de modifier le code pour permettre de parser le texte sur base d'autres caractères de délimitation ( le point, le point virgule, l'apostrophe,...)

    package wordCounter;
    import java.io.*;
    import java.util.*;

    /**
    *
    * @author HackTrack
    * @version 1.0
    */
    public class WordCounter {
    private StringBuffer text;
    private HashMap occurencesMap;

    public WordCounter() {
    occurencesMap = new HashMap();
    }

    public HashMap countOccurences(String filePath){
    try{
    BufferedReader reader = new BufferedReader(new FileReader(filePath));
    text = new StringBuffer();
    String line="";
    while((line=reader.readLine())!=null){
    text.append(line);
    }

    }catch(FileNotFoundException fnfe){
    System.out.println("This file does't exist !");
    }catch(IOException ioe){
    System.out.println("Error while reading file !");
    }
    return parseText(text);
    }

    private HashMap parseText(StringBuffer text){
    occurencesMap = new HashMap();
    StringTokenizer tokenizer = new StringTokenizer(text.toString()," ");
    while(tokenizer.hasMoreTokens()){
    String aWord = tokenizer.nextToken().toUpperCase();
    if(occurencesMap.containsKey(aWord)){
    Integer occurences = (Integer)occurencesMap.get(aWord);
    occurences = new Integer(occurences.intValue()+1);
    occurencesMap.put(aWord,occurences);
    }else{
    occurencesMap.put(aWord.toUpperCase(),new Integer(1));
    }
    }
    showOccurences();
    return occurencesMap;
    }

    private void showOccurences(){
    Set keySet = occurencesMap.keySet();
    List list = new ArrayList(keySet);
    Collections.sort(list);

    for(int i=0 ; i<list.size() ; i++){
    String aWord = (String)list.get(i);
    Integer occurences = (Integer)occurencesMap.get(aWord);
    System.out.println(aWord +": "+ occurences + " occurences");
    }
    }

    public HashMap getOccurencesMap(){
    return occurencesMap;
    }

    public static void main(String args[]) {
    WordCounter counter = new WordCounter();
    counter.countOccurences("C:/test2.txt");
    }
    }

    ;-)
    1. Modérateur
      salut hacky

      je vois que pour une fois j'ai pas dit que des bêtises (pas mal pour un non développeur ;DDD)

      Choubanimal : 
      "Le poilu poilant au poil"
  2. en fait je me suis mal exprime. Ce que je souhaite faire c est afficher les mots d un fichier texte dans l ordre alphabetique avec leur occurrence. Merci de vos reponses.
    1. Modérateur
      je tape trop vite, donc je continue

      La Classe TreeMap implémente les deux interface cités ci dessus et pourrait répondre à tes aspirations
      Choubanimal : 
      "Le poilu poilant au poil"
      1. Modérateur
        bien sur, dans le package java.util, il existe des objets utilisant la technique clé-valeur pour stocker des données(des Strings). Il suffit d'associer le nom (la clé) avec la définition (la valeur).
        Exemple d'objet: Map ou SortedMap (trié)

        Choubanimal : 
        "Le poilu poilant au poil"
        1. Modérateur
          salut,

          ben avec un système clé valeur dans un objet structure de données.

          Choubanimal : 
          "Le poilu poilant au poil"
          1. pourrais tu me le detailler stp. merci.