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

Langage Java Discussion :

[NetBeans] La fonction split


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 20
    Par défaut [NetBeans] La fonction split
    Bonjour, je suis en train de réaliser un projet dans le cadre de mes études et j'aurais beoin de découper une chaine selon le caractère ".." J'obtiens des réactions bizar quand j'utilise ce séparateur, la fonction split ne renvoi un tableau de string de taille 0 au lieu du tableau réel. Voila un code simple montrant le problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        public static void main(String[] args) {
            test();
        }
        public static void test()
        {
            String t[];
            String s="../../truc";
             t=s.split("..");
             System.out.println(t[0]);
             System.out.println(t[1]);
        }
    Ce code devrait afficher : en t[0] la chaine vide et en t[1] la chaine / mais au lieu de ce le programme plante. Si je remplace ".." par "/" tous ce passe normalement.

    Quelqu'un voit pourquoi?

    merci d'avance

  2. #2
    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,


    La méthode split() utilise les expressions régulières, et le caractères '.' désigne n'importe quel caractère. Donc ".." désigne deux caractères quelconques qui se suivent... Comme ta chaine comporte 10 caractères, la méthode split() considère qu'il y a 5 séparateurs et aucun contenu, et elle te renvoit donc un tableau vide (si ca plante c'est que tu ne vérifies pas la taille du tableau).

    Il faut donc que tu protèges les points afin qu'ils soient pris en compte comme de simple caractères :
    ou
    Plus d'info :
    FAQ : Comment empêcher les expressions régulières d'interpréter une sous-chaînes ?
    FAQ : Pourquoi dois-je doubler/quadrupler le caractère anti-slash ('\') ?


    a++

  3. #3
    Membre averti
    Inscrit en
    Décembre 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 20
    Par défaut
    Merci beaucoup un de mes profs m'a dit la même chose cet après-midi je vais pouvoir continuer mon google like

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

Discussions similaires

  1. caractéres spéciaux, fonction split, replace
    Par clochardevobsy dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 22/10/2005, 23h40
  2. Réponses: 5
    Dernier message: 13/10/2005, 12h46
  3. [String] fonction split
    Par tck-lt dans le forum Langage
    Réponses: 2
    Dernier message: 19/07/2005, 17h45
  4. procedure stockée et fonction "split"
    Par wehtam dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/07/2005, 16h21
  5. [Fortran 90] Fonction Split()
    Par gchazelle dans le forum Fortran
    Réponses: 2
    Dernier message: 02/03/2005, 10h16

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