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 :

Filtre de mots


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 28
    Par défaut Filtre de mots
    Bonsoir,

    voilà je souhaite réalisé ceci :

    on a comme arguments: "Hello World" et {'a', 'e', 'i', 'o', 'u'} la fonction renvoie la chaîne "Hll Wrld".

    Ce que j'ai fait mais qui ne fonctionne pas, le problème est dans la fonction filter. Merci de votre aire


    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 boolean contains (String[] tab, String c) {
            boolean res=false;
           for (int i=0;i<tab.length;i++){
               	if (areStringEqual(c,tab[i])){
                   	res=true;
                }
           } 
            return res;
     
     
        }
     
        public static String filter (String str, String[] tab) {
            String res="";
     
            for (int i=0;i<str.length();i++){
                if(contains(tab,str)){
                   res=res+stringCharAt(str,i);
                }
            } 
            return res;
        }
    // FONCTION AUTORISEES //
    public static String stringCharAt(String str, int idx) {
            return String.valueOf(str.charAt(idx));
        }
     
        public static boolean areStringEqual (String s1, String s2) {
            if (s1 == null) {
                return s2 == s1;
            } else {
                return s1.equals (s2);
            }

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 49
    Par défaut
    Bonjour,

    Ton problème est que tu compares toujours "Hello World" avec une des lettres de ton tab (du moins comment est fait ton code c'est ce que je présume), donc le résultat sera toujours faux.
    En plus tu n'ajoutera jamais la bonne lettre car tu prends le problème à l'envers (le résultat que tu aura sera les lettres que tu veux enlever)

    En résumé tu devrais faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        public static String filter (String str, String[] tab) {
            String res="";
     
            for (int i=0;i<str.length();i++){
                String charTemp = stringCharAt(str, i);//Je prends le char que je veux tester avec les lettres à filtrer
                if(!contains(tab, charTemp)){//Il ne faut PAS que str contienne la lettre à enlever 
                   res=res+charTemp;//Ici on rajoute les lettres qui ne doivent pas être filtré
                }
            } 
            return res;//Et tu aura normalement Hll Wrld
        }
    EDIT:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public static boolean contains (String[] tab, String c) {
            boolean res=false;
           for (int i=0;i<tab.length;i++){
               	if (areStringEqual(c,tab[i])){
                   	res=true;
                    break;//Tu peux même rajouter le break ici car quand tu as trouvé la lettre ca ne sert a rien de continuer de boucler
                }
           } 
            return res;
        }

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 28
    Par défaut
    Merci beaucoup pour ton aide

Discussions similaires

  1. Filtre par mot clé
    Par bernardh dans le forum Access
    Réponses: 1
    Dernier message: 09/07/2013, 12h58
  2. filtre mots sur outlook
    Par laure07 dans le forum Outlook
    Réponses: 0
    Dernier message: 02/05/2012, 11h29
  3. filtre par plusieurs mots clés
    Par sampla dans le forum Excel
    Réponses: 1
    Dernier message: 17/10/2010, 11h54
  4. Fonction filtre pour des mots bannis
    Par yule dans le forum Langage
    Réponses: 2
    Dernier message: 30/10/2008, 20h21
  5. Filtre d'un ADOQUERY avec 2 mots espacés
    Par soror dans le forum Bases de données
    Réponses: 4
    Dernier message: 05/09/2007, 00h01

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