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 :

Problème avec un "CompareToIgnoreCase"


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Par défaut Problème avec un "CompareToIgnoreCase"
    Bonjour,

    Je suis ne IUT GEII et nous venons de commencer le java. Pour notre troisième TP nous devons créer une petite application qui permettrais à une bibliothèque de gérer une liste d'emprunteurs. Cette liste est sous forme Arraylist. Et donc lorsqu'un emprunteur vient rapporter un livre, nous devons faire une rechercher dans cette liste pour savoir si il y est déjà. Voici ma méthode pour cette recherche mais j'ai un problème : lorsque je fait une recherche en indiquant le premier de la liste (rang 0), ça plante et ça m'envoie le message d'erreur suivant :

    "IndexOutOfBoundsException : Index : 2, Size : 2 (in java.util.ArrayList)"

    Et donc là j'avoue que je comprend pas trop :s Ca m'indique aussi message d'erreur lorsque le nom n'existe pas. A contrario, cela marche lorsqu'il trouve un emprunteur à partir du rang 1.

    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
    public void rendUnLivre(String nom)
        {
            int i=0;
            int r=1;
     
            while ((r!=0) || (i<liste.size()))
            {
                r = ((String)liste.get(i)).compareToIgnoreCase(nom);
                i++;
            }  
            if(r==0)
                System.out.println("Trouvé");
            else
                System.out.println("Pas trouvé");
        }
    Merci d'avance

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Ta boucle utilise un "ou" et non un "et".

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Par défaut
    ARF Ca marche... Merci beaucoup. Mais attends je comprends pas ... Normalement il dois sortir de la boucle lorsque une des deux condition est rempli avec un OU logique. Là, si r était égal à zéro avant même avant qu'il est finit de parcourir la liste, il sortait de la boucle. Alors que là avec un ET, si jamais il trouve que r est égal à 0, il doit attendre qu'il est finit de parcourir la liste. Je comprends pas trop là

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Je te conseille de réviser un chouia la logique booléenne

    Tu l'as dit toi-même : il faut telle ou telle condition pour _quitter_ la boucle. Or, en java, la logique est basée sur les conditions nécessaires à _rester_ dans la boucle.

    Typiquement, tu penses au mot-clé "until" de PERL, en utilisant un "while".

Discussions similaires

  1. Réponses: 15
    Dernier message: 21/02/2007, 17h29
  2. [MySQL] Problème avec un double quote
    Par wormseric dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/01/2007, 14h44
  3. Formulaires : problème avec les slashes et les quotes
    Par GarGamel55 dans le forum Langage
    Réponses: 1
    Dernier message: 12/10/2005, 15h59

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