Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/06/2006, à 17:23

Premium

[Résolu][java] Intersection de 2 mots

Salut,

J'ai une classe Test qui contient 2 méthodes
public A values (Charsequence mot);
public A intersection(A mot1, A mot2);

A est une interface ayant une méthode
public Iterable<? extends Result> resultat() permettant de récupérer les lignes satifaisant le ou les mots que l'on cherche dans un fichier

Resultat est une interface ayant une méthode
public int getLine()
qui renvoit les lignes correcte

Par exemple si on demande de chercher toto
dans le fichier
toto
toto est parti
titi
toto est revenu
bonjour

on aura comme résultat ligne 1,2 et 4

Si on demande & toto parti, on aura seulement la ligne 4

Je voudrais savoir comment faire pour coder les 2 méthodes de Test car ce sont elles qui me posent problème

Merci

Dernière modification par Premium (Le 16/06/2006, à 17:56)

Hors ligne

#2 Le 15/06/2006, à 00:12

gene69

Re : [Résolu][java] Intersection de 2 mots

Je peux te poser une question?

Pourquoi tu ne cherches pas toi même. Il me semble qu'à ce rythme là tu vas réussir à te faire aucun exercice par toi même.

version 0.5

public Vector getLineMatching(BufferedReader br, String toto){
 Vector liste =new Vector();
 String tmp;
 Try {
   int compteur = 0; 
   while(){
        tmp =br.readLine();
        if (toto.compareTo(tmp)){ /*nullpointeurexception ici*/
             liste.addElement(compteur);
        }
        compteur++;
   }
 }catch (IOException e){
    /*normalement on doit choper une EOFException ici... ctr+D dans la console Eclipse*/ 
    system.out.println("fini, "+e.getMessage);  
 }
  return liste;
}

bon ne me dit pas que vector c'est déprécié... moi je fais ça de mémoire sur des souvenir ancien.


version 0.6

public Vector getLineMatching(BufferedReader br, String[] toto){
 Vector liste =new Vector();
 boolean test;

 String tmp;
 Try {
   int compteur = 0; 
   while(){
        tmp =br.readLine();
        
        // debut du test
        test=true;
        //*amélioration
        //quelqu'un de bien mettrait un iterateur 
        for (int i=0; i<toto.length ;i++){ 
             if ( tmp.indexOf(toto[i])<0){   /*null  pointeur exception ici */
               test=false;
               //break;
             }
        }
        if (test){
             liste.addElement(compteur);
        }
        compteur++;
   }
 }catch (IOException e){
    /*normalement on doit choper une EOFException ici... ctr+D dans la console Eclipse*/ 
    system.out.println("fini, "+e.getMessage);  
 }
  return liste;
}

*amélioration: complexité
trier toto
spliter la chaine tmp dans un tableau, le trier dans le même ordre que toto (le quick sort est rapide...)
si le prochain mot  du tableau "tmp" à est plus grand (lexicographiquement) que le  prochain mot du tableau toto alors on peu déjà arrêter les calculs.

Bon courage smile perso ça m'a pris 30 minutes... (mais G pas compilé)

licence: GPL

Dernière modification par gene69 (Le 15/06/2006, à 00:13)


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne

#3 Le 15/06/2006, à 00:16

gene69

Re : [Résolu][java] Intersection de 2 mots

public Vector getLineMatching(BufferedReader br, String[] toto){
Vector liste =new Vector();
boolean test;

String tmp;
Try {
   int compteur = 0;
   while(){
        tmp =br.readLine();
       
        // debut du test
        test=true;
        //*amélioration
        //quelqu'un de bien mettrait un iterateur
        for (int i=0; i<toto.length ;i++){
             if ( tmp.indexOf(toto[i])<0){   /*null  pointeur exception ici */
               test=false; // à y réfléchir peut être qu'un vrai programmateur lèverai une exception ya quelqu'un qui a une idée?
               //break;
             }
        }
        if (test){
             liste.addElement(compteur);
        }
        compteur++;
   }
}catch (IOException e){
    /*normalement on doit choper une EOFException ici... ctr+D dans la console Eclipse*/
    system.out.println("fini, "+e.getMessage); 
}
  return liste;
}


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne

#4 Le 15/06/2006, à 21:04

gene69

Re : [Résolu][java] Intersection de 2 mots

je comprend pas ta nouvelle consigne. Je suis hors sujet?
Le ET ensembliste (l'union) je connais aussi.
L'intersection entre deux ensembles je connais, entre deux objets beaucoup moins.


dans la deuxieme version ya un objet passé en bufferedReader et l'autre en tableau... bon. On trouve bien les "lignes communes" non?


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne

#5 Le 15/06/2006, à 23:29

Luckynow

Re : [Résolu][java] Intersection de 2 mots

Bon comme tu as l air de poser pas mal de question de code je te propose un autre forum : www.developpez.com
ils ont souvent une bonne connaissance technique.
Sinon pour des sources en lignes il y a www.koders.com
mais encore faut-il savoir chercher

Hors ligne