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

Collection et Stream Java Discussion :

[Débutant]Problème de données dans une variable


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 99
    Points : 47
    Points
    47
    Par défaut [Débutant]Problème de données dans une variable
    Bonjour à tous,

    Je suis débutant en Java, j'ai crée un petit programme permettant de "parser" (utilisation des expressions régulière - pattern - matcher...) un fichier texte. J'ai crée des tableaux pour y pouvoir stocker les résultats...
    Voila je ne sais pas comment faire pour mes mettre ces résultats dans les tableaux (initialement crées).

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.File;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
     
     
    public class Ontology_PharmGKB {
     
    	private static Pattern pattern;
    	private static Matcher matcher;
     
            // Tableaux 
    	String[] tab_Genes = null;
    	String[] tab_Diseases = null;
    	String[] tab_Drugs = null ;
     
    	// Parsage d'un fichier sortie {Gene} dans PharmGKB
     
    	private static void readFile(String fileName){
     
     
    		try {
     
    			File file = new File(fileName);
    			FileReader reader = new FileReader(file);
    			BufferedReader in = new BufferedReader(reader);
    			String string;
     
    			while ((string = in.readLine()) != null){
     
     
    				// To find related Diseases
    				pattern = Pattern.compile("(===> Diseases: (.+))");
    				matcher = pattern.matcher(string);				
     
    				if(matcher.find()){
    					//System.out.println("Trouvé !");
    					System.out.println(matcher.group(0));
    					System.out.println("");
     
    				}
     
    				//To find related Drugs
    				pattern = Pattern.compile("(===> Drugs: (.+))");
    				matcher = pattern.matcher(string);
     
    				if(matcher.find()){
    					//System.out.println("Trouvé !");
    					System.out.println(matcher.group(0));
    					System.out.println("");
    				}
     
    			} // fin while
     
    			in.close();
    		} catch (IOException e){
    			e.printStackTrace();
    		}
    	}
     
    	public static void main (String [] args){
    		if(args.length != 2){
    			System.err.println("Usage : Java TextReader" + "file location");
    			System.exit(0);
    		}
    		String ArgumentFile = new String("/home/.../" + args[0] + "_" + args[1] + "_PharmGKB_data.txt");
    		readFile(ArgumentFile);
     
    	}
     
     
    }
    Je voudrais savoir comment mettre le résultats en rapport avec DISEASE dans le tableau String[] tab_Diseases. Et ceux en rapport avec DRUGS dans le tableau String[] tab_Drugs.

    MERCI BEAUCOUP

  2. #2
    Membre actif Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Points : 229
    Points
    229
    Par défaut
    Instanciation d'un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int taille = 100;
    String[] tableau = new String[taille];
    Utilisation d'un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (int i = 0; i < tableau.length; i++) {
    tableau[i] = "Cellule n°" + (i + 7);
    System.out.println(tableau[i]);
    }
    System.out.println(tableau[4]);
    System.out.println(tableau[10]);
    L'intérêt de ce code est assez limité, mais tu peux y trouver la syntaxe.

    Tu peux aussi créer un tableau de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[] tab = {"salut", "hi", "hola", "hallo"};

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 99
    Points : 47
    Points
    47
    Par défaut
    Merci

    Mais quand tu dis :
    L'intérêt de ce code est assez limité, mais tu peux y trouver la syntaxe.
    Justement je n'arrive à trouver les bonnes variables pour qu'elle rentrent dans mes tableaux.

    Ce que je récupére à l'aide de matcher.group(0), je voudrais que ca aille dans mon tableau, mais je ne sais pas comment faire...

    Si quelqu'un pourrait m'aider à trouver
    Merci

  4. #4
    Membre actif Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Points : 229
    Points
    229
    Par défaut
    Ca dépend de ce que retourne matcher.group(0)... En imaginant que c'est un int :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int[] tableau = new int[100];
    tableau[0] = matcher.group(0);

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 99
    Points : 47
    Points
    47
    Par défaut
    D'accord !!

    Dans mon matcher.group(0), j'ai plusieurs "Strings" à la suite délimités par un "/"
    exemple : Hypercholesterolemia / Arteriosclerosis / HIV / Lipodystrophy /

    Et je voudrais savoir comment on peut remplir notre tableau en faisant en sorte que :
    Hypercholesterolemia = tab[0];
    Arteriosclerosis = tab[1];
    ...
    Lipodystrophy = tab[3]

    Et je tiens à préciser que ce texte (Hypercholesterolemia / Arteriosclerosis / HIV / Lipodystrophy /) change tout le temps. J'effectue des requêtes sur des bases de données, donc le texte et la taille du tableau changeront...

    Merci

  6. #6
    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 : 41
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Tu n'as même pas besoin de créer le tableau toi-même. La méthode split de java fera ça très bien toute seule:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[] tableau = matcher.group(0).split("/");

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 99
    Points : 47
    Points
    47
    Par défaut
    Bonjour,

    C'est noté, mais quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(String[] tableau);
    Il m'inscrit dans la console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Ljava.lang.String;@1f33675
    J'ai même écrit au début de mon code : import java.lang.String; Donc je ne comprend pas pourquoi il m'inscrit ceci !

    Merci pour vos commentaires

  8. #8
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 99
    Points : 47
    Points
    47
    Par défaut
    C BON !!

    Mon problème était dans la taille du tableau; j'ai limité sa taille, et ca fonctionne !!

    Encore merci pour vos réactions !

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

Discussions similaires

  1. lire une donnée dans une variable de session
    Par pblb62 dans le forum Langage
    Réponses: 8
    Dernier message: 21/03/2006, 14h23
  2. Réponses: 9
    Dernier message: 21/02/2006, 09h06
  3. [VB.NET] lien d'une base de donnée dans une variable
    Par Anubis666 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 19/01/2006, 10h56
  4. Réponses: 4
    Dernier message: 16/12/2005, 16h25
  5. Réponses: 2
    Dernier message: 14/10/2005, 10h11

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