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 :

[Débutant] Scinder une chaine avec des points


Sujet :

avec Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 15
    Par défaut [Débutant] Scinder une chaine avec des points
    bonjour
    J'aimerais scinder une chaine de caractères en morceaux, sachant que les morceaux sont séparés par des points :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     chaine = "machaine1.machaine2.machaine3".
    J'arrive sans problème avec la méthode split avec des tabulations :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String [] tokens = chaine.split("\t")
    Mais la même chose avec un "." ne marche pas...

  2. #2
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Si pourtant, tu fais taString.split(".")

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 15
    Par défaut
    Non cela ne marche pas, le caractère "." doit être un caractère spécial?

    En faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String t = "papa.mamam.tonton";
    String [] T1 = t.split(".");
    System.out.println(T1[0]);
    J'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0

  4. #4
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Ah oui le split attend une regex (je croyais qu'il n'attendait qu'une suite de char):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String t = "papa.mamam.tonton";
    String [] T1 = t.split("\\.");
    System.out.println(T1[0]);

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 15
    Par défaut
    Ah d'accord ok, cela marche parfaitement. Merci
    J'airais une autre question au passage, comment extraire une chaine de caractères entre deux paranthèses.
    Comment extraire "maman" de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    machaine = "papa (maman) tonton"

  6. #6
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Faut te renseigner sur l'utilisation des expressions régulières en java.
    L'expression ressemblera à :

    Plus de détails avec les ces cours et tutoriels pour apprendre Java : http://java.developpez.com/cours/
    Le meilleur cours Java : http://jmdoudoux.developpez.com/cours/developpons/java/

  7. #7
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Pour compléter un peu l'explication de Natha:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    String phrase = "papa (maman) tonton";
    String p = "^.*\\((.*)\\).*$";
    Pattern pattern = Pattern.compile(p);
    matcher m = pattern.matcher(phrase);
    if(m.matches()) {
       System.out.println(m.group(1));
    }
    Maintenant, si tu veux comprendre mon code et écrire toi-même des expressions régulières, rien ne vaut un bon tutoriel sur le sujet!
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 15
    Par défaut
    Merci, merci.
    Chercher un tuto oui, encore fallait-il savoir que le sujet était "expression régulière".

    Dans tous les cas merci, mon problème est résolu.

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

Discussions similaires

  1. parser une chaine avec des point virgule
    Par billyrose dans le forum Langage
    Réponses: 5
    Dernier message: 16/03/2009, 17h13
  2. dessiner une ligne avec des point de coordonnées doubles
    Par tanguy.L dans le forum Débuter
    Réponses: 2
    Dernier message: 11/11/2008, 23h16
  3. [RegEx] scinder une chaine avec une regex
    Par tony8716 dans le forum Langage
    Réponses: 1
    Dernier message: 24/06/2008, 13h32
  4. une courbe avec des points
    Par Lost in dans le forum MATLAB
    Réponses: 3
    Dernier message: 17/03/2008, 17h48
  5. [VB.NET] Compléter une chaine avec des espaces
    Par Lois dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/03/2005, 09h09

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