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

Java Discussion :

Supprimer des élément d'une liste


Sujet :

Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Points : 52
    Points
    52
    Par défaut Supprimer des élément d'une liste
    Bonjour tous le monde
    j'ai une chaine de caractère (fichier texte) que j'ai "spliter" après chaque espace ,cmnt j'ai tous mis dans une liste intitulé a11 ,au milieu du texte j'ai
    "cmnt aaaaaa cmnt"
    je veux supprimé c'est trois case de ma liste a11

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    		    String[] items = chaine.split("\\s+");
    		      List <String> a11 = new ArrayList <>(Arrays.asList(items));
     
    		      for( int i  = 0; i < a11.size(); i++)
    		      {
    			    System.out.println(a11.get(i));}
    j'ai une petite idée mais elle n'est pas tres clair

    je cherche l'indice du 1er "cmnt" et je suuprime jusqu'a trouvé le 2eme !!!

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    Citation Envoyé par abbescr7 Voir le message
    Bonjour tous le monde
    j'ai une chaine de caractère (fichier texte) que j'ai "spliter" après chaque espace ,cmnt j'ai tous mis dans une liste intitulé a11 ,au milieu du texte j'ai
    "cmnt aaaaaa cmnt"
    je veux supprimé c'est trois case de ma liste a11

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    
    		    String[] items = chaine.replaceFirst("cmnt aaaaaa cmnt","").split("\\s+");
    		      List <String> a11 = new ArrayList <>(Arrays.asList(items));
    		     
    		      for( int i  = 0; i < a11.size(); i++)
    		      {
    			    System.out.println(a11.get(i));}
    j'ai une petite idée mais elle n'est pas tres clair

    je cherche l'indice du 1er "cmnt" et je suuprime jusqu'a trouvé le 2eme !!!

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Points : 52
    Points
    52
    Par défaut
    !!!!
    j'ai rien reçu ?

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    		List<String> resultat = Arrays.stream(chaine.replaceFirst("cmnt aaaaaa cmnt","").split("\\s+")).collect(Collectors.toList());
    		resultat.forEach(System.out::println);

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Points : 52
    Points
    52
    Par défaut
    ça marche pas c'est pas sa

    lorsque j'ai dit cmnt aaa cmnt c'etais juste un exemple , au milieu des deux cmnt je peux avoir n'importe quoi meme des saut de ligne

    a mon avis a l'aide d'un pattern je cherche le 1er cmnt comme ça je trouve l'indice de ma liste a11 ( ou se pointe cmnt) et je supprime jusqu'a le 2eme cmnt

    deux indice i et j , i<j

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    alors, tu remplaces "cmnt aaaaaa cmnt" par la RegEx que tu souhaites.

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2013
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2013
    Messages : 191
    Points : 472
    Points
    472
    Par défaut
    Je pense que le "aaaaaa" n'est qu'un exemple et que le texte entre tes balises cmnt est variable.
    Si tel est le cas, la solution proposée par plawyx ne fonctionnera pas tel qu'elle.

    Ce que plawyx te propose, c'est de remplacer le motif de ta chaine AVANT de faire ton split().
    Mais si tu fais ça, tu n'as plus besoin de split() ta chaine afin de supprimer tes motifs.

    Je te propose dans le même ordre d'idée, d'utiliser une expression régulière avec la fonction replaceAll(String motif, String remplacement)Ainsi ton code devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String resultat = chaine.replaceAll("cmnt.*cmnt", "");
    . signifie n'importe quel caractère, * signifie 0 ou plusieurs fois de suite.
    Ici, tu recherches dans ta chaine une sous chaine qui commence par cmnt, suivit de n'importe quel caractère 0 ou plusieurs fois, et que se termine par cmnt. Si le motif est trouvé il est remplacé par une chaine vide.
    A noter que String est immuable, ce n'est donc pas chaine qui est directement modifiée, la méthode te retourne le résultat dans une nouvelle chaine de caractères.

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Points : 52
    Points
    52
    Par défaut
    ça marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	List<String> a11 = Arrays.stream(chaine.replaceAll("(?s)cmnt\\s(.*)cmnt","").split("\\s+")).collect(Collectors.toList());
    merci

  9. #9
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Si j'ai bien compris ta question, peut être que tu peux tu aussi faire ça: String[] items = chaine.split("\\s*(?s:cmnt.*?cmnt\\s*|\\s)");
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

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

Discussions similaires

  1. parcourir une liste et supprimer des éléments selon une condition
    Par jean-pat dans le forum Général Python
    Réponses: 17
    Dernier message: 17/03/2017, 22h07
  2. [Prototype] Supprimer des éléments d'une liste
    Par baggie dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 05/06/2012, 12h22
  3. Réponses: 7
    Dernier message: 23/04/2008, 10h21
  4. Supprimer des éléments d'une liste
    Par espadon1 dans le forum Langage
    Réponses: 2
    Dernier message: 31/05/2006, 15h08
  5. [CSS]Changer l'interligne des éléments d'une liste à puces
    Par khany dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 21/03/2005, 13h57

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