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 :

Stocker 2 String et récupérer un couple clé/valeur


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Par défaut Stocker 2 String et récupérer un couple clé/valeur
    Salut
    alors voilà j'ai mon code ci-dessous qui me permets de detecter toutes les lignes d'un texte de la forme set ... = ...
    code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
     
     
    public class DetecteSymbole {
     
    	public static void main(String[] args) throws FileNotFoundException {
     
    		String fichier = "fichiertxtP2CSH.txt";
     
    		// lit le fichier ligne par ligne 
    		try{
    			// lire un fichier
    			InputStream ips=new FileInputStream(fichier);       
    			InputStreamReader ipsr=new InputStreamReader(ips);
    			BufferedReader br=new BufferedReader(ipsr);
    			// lire ligne par ligne 
    			String ligne;
    			while ((ligne=br.readLine())!=null){
    				//System.out.println(ligne);
     
    				if(ligne.matches("^set.*=.*")){
    				    System.out.println("On récupère : " + ligne);
    				}
     
    			}
    			br.close(); // On ferme le flux
    		}		
    		catch (Exception e){
    			System.out.println(e.toString());
    		}
     
     
     
    	}
     
    }
    en output j'ai :
    On récupère : set dir_listing = jdfgjkdfnbjkdfnbjnfdbndfjbndfbndfkb
    On récupère : set toto = tata
    On récupère : set nono = ueueue777


    et maintenant j'aimerai en faite créer un code qui me récupère ... et ... c'est à dire toto et tata ; dir_listing et jdfgjkdfnbjkdfnbjnfdbndfjbndfbndfkb ; nono et ueueue777
    puis les stoker dans une arraylists.

    Là j'ai commencer mon code mais j'ai du mal pour la suite :
    code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    import java.util.ArrayList;
     
     
    public class RecupCleValeur {
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
     
    		String filename = "fichiertxtP2CSH.txt";
     
    		Finally fn = new Finally();
    		String gg = fn.detecteSymbole(filename);
     
    		// creer une arraylist 
    		ArrayList <String> stoke = new ArrayList <String>();
     
     
     
    	}
     
    }
    Avez vous une petite idée ?
    Thinks

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    On t'a déjà parlé dans une autre discussion des groupes de captures dans les expressions régulières : tu peux utiliser justement ici un groupe de capture pour récupérer chacune des parties, en modifiant cette expression régulière (les parties à capturer sont bien sûr les deux ".*") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ligne.matches("^set.*=.*")
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Autre chose : tu as un système clé/valeur.
    Donc une ArrayList n'est pas une bonne idée pour représenter cette structure de données

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Par défaut
    Oui je vais essayer de faire avec les groupes de captures ! je suis entrzain d'y réflechir là
    merci Joel

    Oui eulbobo, je vais utiliser une hashmap c'est mieux

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Par défaut
    J'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
     
     
    public class RecupCleValeur {
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
     
    		String filename = "C:\\Users\\ksmaili\\workspace\\fichiertxtP2CSH.txt";
     
    				/*"#!/bin/csh -xv"+
    				"#BSUB -J calmod_POGO_2CU "+
    				"#BSUB -o calmod_POGO_2CU.oJ"+
    				"#BSUB -L /bin/csh"+
     
    				"umask 002"+
     
    				"#----------------------------------------------------------------------"+
    				"set dir_listing = jdfgjkdfnbjkdfnbjnfdbndfjbndfbndfkb"+
    				"jnfjkg"+
    				"$gdfgdfg"+
    				"dfgdfgdfg74654654fdg"+
    				"fdgdfg"+
    				"fgdf"+
    				"set toto = tata"+ 
    				"fgfg"+
    				"fg;hmfh"+
    				"dfdsfgdfg"+
    				"set nono = ueueue777"+
    				"set khjkhjkhkj 8787687657"+
    				"titi = tutu";*/
     
     
    		Finally fn = new Finally();
    		String gg = fn.detecteSymbole(filename);
     
    		// je peux utiliser un groupe de capture pour recuperer chacune des parties 
     
     
    		 Pattern p=Pattern.compile(".*");
    		 Matcher m=p.matcher(filename);
    		 while(m.find()) {
    			 System.out.println(m.group(1)); 
    		 }
     
    	}
     
    }
    Sa me donnes pas ce que je veux mais je pense avoir un problème au niveau du pattern nan ?

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Oui, c'est sûr : matcher .* veut dire matcher n'importe quelle suite de 0 à n caractères quelconques. Toute chaîne matches .*.

    Les groupes de captures ! Les machins avec des parenthèses autour ! Et évidemment, ça ne change pas fondamentalement l'expression régulière qui te sert à détecter les chaînes qui t'intéressent.

    Par exemple, si je veux chercher les A suivi d'un nombre, je vais écrire l'expression A\d+. si je veux connaitre quel nombre, je vais capturer la partie de l'expression qui correspond au nombre, la mettre entre parenthèses : A(\d+).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

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

Discussions similaires

  1. Stocker une string dans un tableau de char à deux dimensions
    Par faitor1 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 03/03/2014, 02h12
  2. [c#][listbox]probleme afficher string et récupérer objet
    Par lachouke dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/05/2008, 16h55
  3. Réponses: 7
    Dernier message: 11/02/2006, 00h05
  4. Récupérer puis nommez des valeurs from un base MySQL
    Par nono3000 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 14/12/2005, 20h41
  5. [JList] notion de clé, couple clé - valeur affichée
    Par guipom dans le forum Composants
    Réponses: 2
    Dernier message: 26/03/2005, 01h00

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