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 :

problème avec Split


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Par défaut problème avec Split
    Salut, j'aimerais splitter la chaîne suivante :
    code||langue
    J'ai essayé le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	public String[] splitText(String toSplit){
    		System.out.println(toSplit);
    		String [] splitted = toSplit.split("||");
    		for (int i=0;i<toSplit.length();i++){
    			System.out.println(splitted[i]);
    		}
    		return splitted;
    	}
    Mais ça me retourne :
    c
    o
    d
    e
    |
    |
    l
    a
    n
    g
    u
    e
    Quelqu'un sait m'expliquer le pourquoi?

  2. #2
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    Salut,

    parce que le pipe a l air d etre un caractere spécial.
    essaye avec un anti slash devant chaque pipe

  3. #3
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Tout simplement parce que split() attend en paramètre une expression régulière, et que le caractère | est un caractère spécial qui signifie OU, donc ton expression signifie : " rien OU rien OU rien ".

    Donc tu utilises rien comme séparateur ton résultat est normal !



    Pour éviter cela il faut que tu protèges les caractères spéciaux, par exemple avec un \\ ou en englobant le tout de \\Q et \\E :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String [] splitted = toSplit.split("\\|\\|");
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String [] splitted = toSplit.split("\\Q||\\E");
    A noter qu'a partir de Java 5.0 tu peux utiliser Pattern.quote() pour protéger simplement toute une chaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String [] splitted = toSplit.split( Pattern.quote("||") );


    Plus d'info sur les regexp : http://javasearch.developpez.com/j2s...x/Pattern.html

    a++

  4. #4
    Membre éclairé Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Par défaut
    Juste, je n'avais plus pensé à la fonction première du ||...

    En tout cas, un grand merci, me voilà maintenant dépané...

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

Discussions similaires

  1. Petit problème avec split
    Par Hekinox dans le forum C#
    Réponses: 7
    Dernier message: 16/12/2011, 09h35
  2. Problème avec Split
    Par diombo dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/07/2011, 08h11
  3. [Débutant] Problème avec Split
    Par crimetime dans le forum C#
    Réponses: 5
    Dernier message: 14/06/2010, 16h41
  4. Problème avec Split VBA ACCESS
    Par mmmxtina dans le forum VBA Access
    Réponses: 7
    Dernier message: 05/06/2009, 08h31
  5. [Tableaux] problème avec la fonction split()
    Par Marcus15 dans le forum Langage
    Réponses: 3
    Dernier message: 26/02/2007, 11h17

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