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 :

eliminer les vides dans une liste


Sujet :

avec Java

  1. #1
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 91
    Points : 77
    Points
    77
    Par défaut eliminer les vides dans une liste
    Salut à tous


    J'essaye d'éliminer les vides dans une liste de type String que j'extrais à partir d'un fichier text
    Ce code me retourne la liste des éléments avec bien entendu trop de vide(String blanc)
    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
     
         File ftext2=  new File("e:\\ftext.txt");
     
         List momo = new ArrayList();
     
           try
           {
       momo= extraction_text(ftext2);//method qui extrait les mots du fichier  text
           }
           catch (IOException ex) {
                ex.printStackTrace();
            }
     
          Iterator p= momo.iterator();
          int r=0;
      while(p.hasNext())
      { 
              r++;
     
              System.out.println("Element n°"+r);
     
              System.out.println(p.next());
      }

    Mais quand j'ajoute une boucle pour avoir le code suivant, la liste que j'obtiens à la fin est vide, le remove() se comporte comme clear().
    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
     
         File ftext2=  new File("e:\\ftext.txt");
     
         List momo = new ArrayList();
     
           try
           {
       momo= extraction_text(ftext2);//method qui extrait les mots du fichier  text
           }
           catch (IOException ex) {
                ex.printStackTrace();
            }
           Iterator ops= momo.iterator;
           while(ops.hasNext())
            {
               if(ops.next().equal(null))
                 ops.remove();
            }
     
          Iterator p= momo.iterator();
          int r=0;
      while(p.hasNext())
      { 
              r++;
     
              System.out.println("Element n°"+r);
     
              System.out.println(p.next());
      }
    merci pour votre aide!

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Attention, une chaîne constituée d'un " " n'est pas une chaîne null.
    Essaye le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Iterator ops= momo.iterator();
    while(ops.hasNext())
    {
    if(((String)ops.next()).equals(" ")) { ops.remove(); }
    }
    Par ailleurs, vérifie que le ops.remove() est bien DANS le bloc de ton test "if". Je soupçonne que si ta liste finale est vide, c'est parceque cette commande est effectuée systématiquement pour chaque élément. Dans ce cas, cela revient effectivement au même que d'effectuer un "clear()"

    Détails dans ces cours et tutoriels Java : http://java.developpez.com/cours/
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 91
    Points : 77
    Points
    77
    Par défaut pas de changement
    Salut

    L'ajout de la boucle n'a rien changer. Le fichier contient des lignes entière qui sont des blancs.
    merci

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 159
    Points : 467
    Points
    467
    Par défaut
    Tu peux utiliser les expressions régulières du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Iterator ops = momo.iterator();
    while(ops.hasNext()) {
       if(((String)ops.next()).matches("\\s*")) { ops.remove(); }
    }
    Avec \s* le programme cherche zéro ou plusieurs espaces blancs qui d'après la JavaDoc peuvent être: [ \t\n\x0B\f\r]

  5. #5
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 91
    Points : 77
    Points
    77
    Par défaut
    Merci à tous pour votre aide. Le probleme est resolu.

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

Discussions similaires

  1. [C# 2.0] Détecter les doublons dans une List<string>
    Par Rodie dans le forum Windows Forms
    Réponses: 36
    Dernier message: 30/03/2013, 15h21
  2. Réponses: 42
    Dernier message: 07/07/2012, 09h16
  3. [XSLT] probleme avec les doublons dans une liste deroulante
    Par mikooo dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 02/04/2007, 15h37
  4. Eliminer les rédondences dans une jointure de tables
    Par odi_9 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 19/09/2006, 16h19
  5. Réponses: 6
    Dernier message: 31/07/2006, 16h01

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