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

Collection et Stream Java Discussion :

Convertir un String en ArrayList


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Bigoodheart
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 154
    Par défaut Convertir un String en ArrayList
    Bonjour,

    Je voudrai convertir un "String" en "List" ...mon String contient des "^" j'utilise la méthode split() pour la division ,je le convertis en String[] aprés en ArrayList mais ça ne marche pas ! on dirait que la division ne se fait pas ! il prends toutes ma chaine pour un seul élément de mon arrayList ,voici mon code quelqu'un pourrait me corriger ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    String condition1 = getParameters().get("val")[0];
    String[] cd1 = condition1.split( " ^ " );
     
    ArrayList list = new ArrayList(Arrays.asList(cd1));
     
    Iterator i = list.iterator();
    	int j=0;
    	while(i.hasNext()){
    	  //x = i.next();
      	 String o = (String) i.next();
             System.out.println( "resultat "+ j + o);
    	  j++;
    			}

  2. #2
    Membre éprouvé
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Par défaut
    Citation Envoyé par foufatoon Voir le message
    Bonjour,

    Je voudrai convertir un "String" en "List" ...mon String contient des "^" j'utilise la méthode split() pour la division ,je le convertis en String[] aprés en ArrayList mais ça ne marche pas ! on dirait que la division ne se fait pas ! il prends toutes ma chaine pour un seul élément de mon arrayList ,voici mon code quelqu'un pourrait me corriger ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    String condition1 = getParameters().get("val")[0];
    String[] cd1 = condition1.split( " ^ " );
     
    ArrayList list = new ArrayList(Arrays.asList(cd1));
     
    Iterator i = list.iterator();
    	int j=0;
    	while(i.hasNext()){
    	  //x = i.next();
      	 String o = (String) i.next();
             System.out.println( "resultat "+ j + o);
    	  j++;
    			}
    Bonjour,


    En fait le problème vient du split. Le motif que tu as utilisé ne fera pas ce que tu veux.
    En effet, il ne fait pas oublier que split utilise les expressions régulières or le caractère ^ a une signification spéciale, il représente le début d'une ligne.
    Il faut donc l'échapper dans le motif.

    Pour ton problème, essaie donc plutôt de faire comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    String condition1 = getParameters().get("val")[0];
    String[] cd1 = condition1.split( " \\\\^ " );
     
    ArrayList list = new ArrayList(Arrays.asList(cd1));
     
    Iterator i = list.iterator();
    int j=0;
    while(i.hasNext()){
     String o = (String) i.next();
     System.out.println( "resultat "+ j + o);
      j++;
    }

    Je te conseille d'étudier plus en détail la classe Pattern qui présente les expressions régulières en Java.

    Voir aussi l'entrée de la suivante pour comprendre pourquoi il faut quadrupler l'anti-slash :
    Pourquoi dois-je doubler/quadrupler le caractère anti-slash ('\') ?

  3. #3
    Membre confirmé Avatar de Bigoodheart
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 154
    Par défaut
    Merci de votre réponse !
    ça a marché mais avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[] cd1 = condition1.split("\\^");
    Merci encore une fois et bonne journée

  4. #4
    Membre éprouvé
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Par défaut
    Citation Envoyé par foufatoon Voir le message
    Merci de votre réponse !
    ça a marché mais avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[] cd1 = condition1.split("\\^");
    Merci encore une fois et bonne journée
    Oups, je m'ai trompé, fallait pas quadrupler dans ce cas là.

    J'ai l'air fin moi.

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

Discussions similaires

  1. [Firebird] Convertir une String en date
    Par laffreuxthomas dans le forum SQL
    Réponses: 1
    Dernier message: 04/05/2005, 19h42
  2. [C#] Fonction pour convertir string[] vers ArrayList
    Par luimême dans le forum Windows Forms
    Réponses: 6
    Dernier message: 07/04/2005, 13h25
  3. [Débutant(e)]convertir un string en entier
    Par harris_macken dans le forum Langage
    Réponses: 2
    Dernier message: 01/04/2005, 07h20
  4. Convertir un string en type property ou object
    Par bencot dans le forum Langage
    Réponses: 2
    Dernier message: 20/11/2004, 20h18

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