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 :

Afficher une liste de String


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 40
    Points : 18
    Points
    18
    Par défaut Afficher une liste de String
    Bonjour, je veux extraire les classes d'une ontologie dans une liste de string, voila le 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
    public class Recherche
    { 
      public String[] classe() 
      { 
        int indice=1; 
        String []M= new String [50]; 
        String owlFile = "C:Documents/ProjetMI/MI.owl"; 
     
        // Creation d'un modele d'ontologie pour une ontologie OWL-DL avec un   resonneur RDFS 
        OntModel m = ModelFactory.createOntologyModel (OntModelSpec.OWL_DL_MEM_RDFS_INF); 
        FileManager.get().readModel( m, owlFile ); 
     
        Iterator<OntClass>iter = m.listClasses(); 
        indice++; 
        for(int p=0;p<50;p++) 
        { 
          for ( ; iter.hasNext() ; )
          { 
            OntClass cl= (OntClass) iter.next(); 
            M[p] = cl.getLocalName(); 
          } 
        } 
        return M; 
      } 
     
      public static void main (String [] args)
      { 
        Recherche re = new Recherche(); 
        System.out.println(re.classe()); 
      } 
    }
    Je n'ai aucune erreur dans mon code mais lorsque je fais un "run", j'aurais pas de résultats. Aidez-moi SVP???

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 554
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 554
    Points : 21 613
    Points
    21 613
    Par défaut
    Hello,

    On ne peut pas passer un tableau à println(). Enfin on peut, mais ça sert à rien.
    Fais plutôt System.out.println(Arrays.toString(tonTableau));.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Merci beaucoup j'ai mis : System.out.println(Arrays.toString(M));
    mais ça me donne un résultat null :

    run-main:
    [null, null, null, null, null, null, null]

    Je ne sais pas quel est le problème!! est-ce que tu peux m'aider SVP?

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 554
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 554
    Points : 21 613
    Points
    21 613
    Par défaut
    Le problème est que ton M est un tableau d'objets qui ne contient que des pointeurs null.

    Ce semble indiquer que cl.getLocalName() renvoie null au moins sur ton dernier OntClass. (Un peu de debug te montrera que la boucle for assigne toutes les valeurs à M[0], donc seule la dernière assignation est gardée. M[1], M[2] etc ne sont jamais assignés et restent donc à null.)
    Ne connaissant pas ModelFactory, OntModel, FileManager ou OntClasse, je ne peux pas t'aider.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    OK merci beaucoup j'ai résolu mon problème mais j'ai encore un autre
    Bon, j'ai créé un tableau ou j'ai récupéré ma liste des individus. Jusqu'ici tout va bien et mes résultats s'affichent.
    Puis j'ai essayé à entrer une chaîne de caractères et de vérifié si elle existe dans ce tableau, voila le 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
    package recherche;
     
    import com.hp.hpl.jena.ontology.Individual;
    import com.hp.hpl.jena.ontology.OntClass;
    import com.hp.hpl.jena.ontology.OntModel;
    import com.hp.hpl.jena.ontology.OntModelSpec;
    import com.hp.hpl.jena.rdf.model.ModelFactory;
    import com.hp.hpl.jena.util.FileManager;
    import java.util.Arrays;
    import java.util.Arrays;
    import java.util.Iterator;
    import java.util.Scanner;
     
     
     public class Recherche{ 
     
            private static String []z= new String [170];
     
            public static void main (String[] args){
     
                String x;
                int p = 0;
                boolean r =false;
                String owlFile = "C:/ProjetMI/MI.owl";
     
                // Creation d'un modele d'ontologie pour une ontologie OWL-DL avec un resonneur RDFS
                   OntModel m = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RDFS_INF);
                   FileManager.get().readModel( m, owlFile );
     
              //Récupérer la liste des individus
                   Iterator<Individual> Instance = m.listIndividuals();
     
              //Insertion dans le tableau
                   for ( ; Instance.hasNext() ; ){
    		      Individual ins = Instance.next();
                          z[p] = ins.getLocalName();
                          p++;
            }
     
                   System.out.println(Arrays.toString(z));
     
                   for (p=0;p<z.length;p++){
                      System.out.println(z[p]);
                   }
     
     
                   System.out.println("entrez quelque chose");
                   Scanner S= new Scanner (System.in); 
                   x = S.nextLine();
     
                   for (p=0;p<z.length;p++) {
     
                      if (x == z[p])    { r=true; }
                      else             { r=false; }
                   }
     
                   if ( r==true )
                        { System.out.println(x+ "cet individu est existant"); }
     
                   else 
                        { System.out.println("erreur"); }
            } 
     }

    Le problème est qu'il me donne toujours "erreur" méme si je rentre un individu qui existe. Aidez-moi SVP.
    Merci d'avance.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 554
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 554
    Points : 21 613
    Points
    21 613
    Par défaut
    Pour comparer deux objets a et b, il ne faut pas faire a == b mais a.equals(b).
    Comme indiqué dans la FAQ : comment comparer deux chaînes de caractères.

    Ton test if(x == z[p]) est donc erroné.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    J'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (x.equals(z[p])==true)    { r=true; }
    else                        { r=false; }
    Mais toujours le méme problème. Voila ce qu'il m'affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    run-main:
    Cancer_de_la_sphère_ORL
    Pemphigus_Vulgaire
    Phénomène_de_Raynaud
    Mucoviscidose
    Progeria
    Cancer_des_Voies_Urinaires
    Immunologie
    Le_Syndrome_de_Marfan
    La_Mucoviscidose
    Virus_du_Choléra
    Erythromélalgie
    Maladie_des_Os_de_Verre
    ........
    Puis il me donne la main de saisir une chaîne de caractères

    J'écris par exemple : Il me rend :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    erreur
    BUILD SUCCESSFUL (total time: 16 seconds)

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 554
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 554
    Points : 21 613
    Points
    21 613
    Par défaut
    Faudrait peut-être arrêter la boucle une fois que tu as trouvé le bon.

    Et il faudrait que tu apprennes à déboguer, aussi. Tu aurais dû le voir. Ne pas savoir qu'on doit utiliser equals() au lieu de ==, c'est du niveau débutant, mais ok, ça se comprend. Ne pas se rendre compte que la variable r est assignée plusieurs fois et qu'elle devrait ne l'être qu'une fois, ça c'est pas bon.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    j'ai essayé d'enlever la boucle "for" et je précise la position dans le tableau, je mets par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (x.equals(z[4])) { r=true; }
    else { r=false; }
    }
    il m'affiche que l'individu existe!!!!!

    Donc, j'ai remplacé "for" par "while" et en fin, ça marche et mon problème est résolu. Je ne sais pas pourquoi ça marche pas avec "for" mais je suis contente.

    Merci beacoup pour ton aide.

Discussions similaires

  1. Réponses: 9
    Dernier message: 21/11/2008, 11h38
  2. Réponses: 2
    Dernier message: 28/08/2008, 16h35
  3. [PHP-JS] Afficher une liste sur la page ?
    Par bzoler dans le forum Langage
    Réponses: 7
    Dernier message: 27/01/2006, 09h41
  4. [VB]Ja'imerais afficher une liste d'éléments...
    Par STRUFIELD dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/01/2006, 18h49
  5. Comparaison d'une liste de string à un string
    Par maxazac dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 19/10/2005, 15h39

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