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 :

Fonction split() suivant chaine de caracteres


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2008
    Messages : 41
    Points : 46
    Points
    46
    Par défaut Fonction split() suivant chaine de caracteres
    Bonjour,
    j'aimerais splitter une chaine de caractères à partir d'une suite d'une autre chaine

    chaine à splitter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String s="toto1 --++-- toto-2 --++-- to-to-3 --++-- toto4"
    pour obtenir :

    toto1
    toto-2
    to-to-3
    toto4

    j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    s.split([" --++-- "]);

    mais cela tient compte des tirets déjà présents dans les sous chaines, d'avance merci pour votre aide

    @++

  2. #2
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Points : 852
    Points
    852
    Par défaut
    Bonjour,

    Ceci fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String s="toto1 --++-- toto-2 --++-- to-to-3 --++-- toto4";
    String [] arf = s.split(" \\-\\-\\+\\+\\-\\- ");

  3. #3
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2008
    Messages : 41
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par Génoce Voir le message
    Bonjour,

    Ceci fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String s="toto1 --++-- toto-2 --++-- to-to-3 --++-- toto4";
    String [] arf = s.split(" \\-\\-\\+\\+\\-\\- ");
    merci beaucoup Génoce, j'avais pas pensé aux doubles caractères d'échappement

    @++

  4. #4
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 778
    Points
    5 778
    Par défaut
    La méthode string.split() utilise une expression régulière. Pour utiliser une chaine de caractère que l'on ne veut pas être interpréter comme une expression régulière il faut en effet échapper tous les caractères spéciaux.
    Pour cela le mieux est encore d'utiliser la méthode Pattern.quote() ainsi on est sûr de ne pas en oublier .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String s="toto1 --++-- toto-2 --++-- to-to-3 --++-- toto4";
    String [] arf = s.split(Pattern.quote(" --++-- "));

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

Discussions similaires

  1. Fonction split et chaines en UTF8
    Par AnkyFive dans le forum Langage
    Réponses: 9
    Dernier message: 05/01/2012, 18h38
  2. Réponses: 7
    Dernier message: 17/04/2007, 13h48
  3. Split de chaines de caracteres
    Par lektrosonic dans le forum Réseau
    Réponses: 9
    Dernier message: 17/01/2007, 10h51
  4. random en fonction d'une chaine de caractere
    Par tatayoyo dans le forum C
    Réponses: 6
    Dernier message: 28/02/2006, 22h23
  5. Fonction Comptage de chaine de caractere
    Par Boubou1283 dans le forum C
    Réponses: 14
    Dernier message: 16/10/2005, 09h23

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