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

avec Java Discussion :

Acceder à un morceau de chaine


Sujet :

avec Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Acceder à un morceau de chaine
    Bonjour !

    Voilà je développe une application java avec interface graphique via netbeans et j'ai un problème.

    A un moment je propose de selectionner un fichier ( jFileChooser choose ).

    puis je récupère le nom, mais je voudrais avoir le nom sans extention.

    Voici ce que je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String s = choose.getSelectedFile().getName();
    String[] n = s.split(".");
    String name = s[0];
    Et voici mon problème, j'obtiens une erreur :
    Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0

    Lorsque je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(n.length);
    j'obtiens : 0
    .... alors qu'un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(s);
    me donne bien le nom avec son extention : par exemple «file.txt»

    Où est mon erreur ?

  2. #2
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    La fonction split de string doit prendre des regexp.
    Si t'essayes ainsi:


  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci Heimdal, ça marche :-)

    Peux-tu me m'expliquer quelle est la règle sur ce sujet ?
    Pourquoi faut-il ajouter les deux anti-slaches ?
    Que comprenait java quand je les omettais ?

  4. #4
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    Honnetement les regexp ne sont pas ma tasse de thé, mais en allant dans la doc j'ai trouvé ça:

    Predefined character classes
    . Any character (may or may not match line terminators)
    Il me semble que "\." est le caractère point, bref "\caractSpeciaux" pour tous les caractères spéciaux. Seulement il faut ajouter devant le caractère d'échappement qui est "\". Ce qui donne "\\.", bref c'est l'embrouille.

    Si je peux te conseiller un truc pour plus de robustesse et de facilité pour la gestion simple de chaines de caractères, c'est d'utiliser l'API Commons-lang d'apache et plus particulièrement la classe StringUtils.

    Sinon, un lien si tu veux en savoir plus sur les regexp:
    http://java.sun.com/j2se/1.4.2/docs/...x/Pattern.html

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci encore Heimdal, je vais consulter .

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

Discussions similaires

  1. Extraire et supprimer un morceau de chaine de caractères
    Par Flodelarab dans le forum Requêtes
    Réponses: 6
    Dernier message: 21/07/2014, 13h37
  2. Récupérer un morceau de chaine
    Par gege765 dans le forum Langage
    Réponses: 6
    Dernier message: 15/12/2011, 19h27
  3. Récupérer un morceau de chaine.
    Par Empty_body dans le forum Linux
    Réponses: 4
    Dernier message: 23/11/2008, 22h29
  4. Réponses: 12
    Dernier message: 09/02/2005, 00h42
  5. Récupérer un morceau de chaine
    Par snoop dans le forum Linux
    Réponses: 10
    Dernier message: 26/08/2004, 11h09

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