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 :

Recuperation de données entre ()


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Par défaut Recuperation de données entre ()
    Bonsoir,

    je souhaite analyser une ligne de ce style :
    (a 10)(a 15)(b 45)(b 67)
    pour obtenir en sortie :
    a 10
    a 15
    b 45
    b 67
    Le code que j'ai écrit est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    String st [] = "(a 10)(a 15)(b 45)(b 67)".split("[(]");
        for(int i=0; i < st.length; i++) {
            st[i] = st[i].split("[)]")[0];
        }
        for(int i=0; i < st.length; i++) {
            System.out.println(st[i]);
        }
    En sortie, j'obtiens pas tout à fait ce qu'il faut car dans la premiere case du tableau, il y a un blanc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //ici il y a un blanc
    a 10
    a 15
    b 45
    b 67
    Est-ce que quelqu'un aurait une méthode à m'indiquer pour que je n'ai plus ce probleme (sans avoir à décaler tous les éléments du tableau )?

    Merci

  2. #2
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Bonsoir,

    les pros des regex auront peut-être quelquechose de plus optimal, en tout cas ceci semble convenir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	Pattern pattern = Pattern.compile("\\((.+?)\\)");
    	Matcher matcher = pattern.matcher("(a 10)(a 15)(b 45)(b 67)");
    	while (matcher.find()) {
    		System.out.println(matcher.group(1));
    	}

  3. #3
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    Salut,

    Met les plutot dans un ArrayList qui est un espece de tableau dynamique dont la taille varie en fonction du nombre d'element que tu y insert au pire il existe une fontion toArray qui te renvoie un tableau d'objet si vraiment tu veux un tableau

Discussions similaires

  1. Recuperer les données entré dans JTextField vers Dans un autre JFrame
    Par Francisco22 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 30/04/2014, 17h38
  2. [Toutes versions] Recuperer des données entrées dans une bibliothèque
    Par angelo k dans le forum SharePoint
    Réponses: 0
    Dernier message: 22/03/2011, 15h07
  3. Comment récuperer des données entrées au clavier?
    Par Elisée A. dans le forum MFC
    Réponses: 2
    Dernier message: 13/02/2004, 07h22
  4. Réponses: 3
    Dernier message: 04/02/2004, 18h35
  5. [Kylix] Echange de données entre fiches
    Par _dack_ dans le forum EDI
    Réponses: 1
    Dernier message: 01/07/2003, 11h34

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