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 :

methodes java et parties privees


Sujet :

avec Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Points : 1
    Points
    1
    Par défaut methodes java et parties privees
    Bonjour tout le monde,

    Je suis nouveau ici et je voudrais vous remercier d'avance de bien vouloir m'aider a sortir de cette ennuyeuse sitation que je traine avec depuis deux semaines !!!

    J'ai fait le code suivant :

    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    public class Abonne {
     
        //CONSTANTES - Vous DEVEZ utiliser ces constantes dans votre code...    
        private final static String [] SORTES_ABON = {"papier", "electronique", "papier et electronique"};
        public final static int LONG_NOM_PRENOM_MIN = 2;
        public final static int SORTE_ABON_MIN = 0;
        public final static int SORTE_ABON_MAX = SORTES_ABON.length - 1 ;
        public final static int MOIS_MIN = 1;
        public final static int MOIS_MAX = 12;
        public final static int ANNEE_MIN = 2005;
        public final static int ANNEE_MAX = 2017;
        public final static int DUREE_MIN = 1;
        public final static int DUREE_MAX = 72;
     
        public final static String NOM_DEFAUT = "Nom inconnu";
        public final static String PRENOM_DEFAUT = "Prenom inconnu";
        public final static int ABON_DEFAUT = 1;
        public final static int MOIS_DEFAUT = 9;
        public final static int ANNEE_DEFAUT = 2015;
        public final static int DUREE_DEFAUT = 6;
     
        public static int NoAbonne = 1000;
     
        //METHODE DE CLASSE
        /*********************************************************
        Retourne la sorte d'abonnement (String) en fonction de 
        la valeur recue en parametre. Lorsque la sorte est 
        invalide, cette methode retourne la chaine vide.
         */
        public static String sorteAbonnement (int sorte){
            String sorteAbon = ""; 
     
            if(sorte == SORTE_ABON_MIN){
                sorteAbon = SORTES_ABON[0];
            }else if (sorte == 1){
                sorteAbon = SORTES_ABON[1];
            }else if (sorte == SORTE_ABON_MAX){
                sorteAbon = SORTES_ABON[2];
            }else{
                sorteAbon = "";
            }
     
            return sorteAbon; 
        }
     
        // Constructeurs
     
        /*
         * Ce constructeur cree un nouvel abonne en fonction des informations recues en
         * parametre. Lorsqu'une information recue en parametre ne fait pas partie des
         * valeurs permises, l'attribut correspondant est mis a la valeur par defaut.
         */
        public Abonne ( String nom, String prenom, int abonnement, int mois, int annee, int duree ) {
            this(nom, prenom, abonnement, mois, annee);
     
            if (duree < DUREE_MIN || duree > DUREE_MAX){
                this.duree = DUREE_DEFAUT;
            }else{
                this.duree = duree;
            }
        }
     
        /*
         * Ce constructeur cree un nouvel abonne avec une duree d'abonnement de 12 mois 
         * en fonction des informations recues en parametre. Lorsqu'une information recue
         * en parametre ne fait pas partie des valeurs permises, l'attribut correspondant 
         * est mis a la valeur par defaut.
         */
        public Abonne ( String nom, String prenom, int abonnement, int mois, int annee ) {
     
            if(Character.isAlphabetic(nom.charAt(0)) && (Character.isAlphabetic(nom.charAt(1)))
            && nom.length() >= LONG_NOM_PRENOM_MIN){
                this.nom = nom;
            }else {
                this.nom = NOM_DEFAUT;
            }
            if(Character.isAlphabetic(prenom.charAt(0)) && (Character.isAlphabetic(prenom.charAt(1)))
            && prenom.length() >= LONG_NOM_PRENOM_MIN){
                this.prenom = prenom;
            }else {
                this.prenom = PRENOM_DEFAUT;
            }
            if (abonnement < SORTE_ABON_MIN || abonnement > SORTE_ABON_MAX){
                this.abonnement = ABON_DEFAUT;
            }else {
                this.abonnement = abonnement;
            }
            if (mois < MOIS_MIN || mois > MOIS_MAX){
                this.mois = MOIS_DEFAUT;
            }else{
                this.mois = mois;
     
            }
            if(annee < ANNEE_MIN || annee > ANNEE_MAX){
                this.annee = ANNEE_DEFAUT;
            }else{
                this.annee = annee;
            }
     
            duree = 12;
     
            genererIdentifiant();
     
        }
     
        ////////////////////////////
        // HUIT GETTERS d'instance//
        ////////////////////////////
        public String getNom(){
            return nom;
        }   
     
        public String getPrenom(){
            return prenom;
        }
     
        public int getAbonnement(){
            return abonnement;
        }
     
        public int getMois(){
            return mois;
        }
     
        public int getAnnee(){
            return annee;
        }
     
        public int getDuree(){
            return duree;
        }
     
        public int getNoAbonne(){
            return NoAbonne;
        }
     
        public String getIdentifiant(){
            return identifiant;
        }
     
        /////////////
        // SETTERS //
        ////////////  
     
        /*
         * Modifie la duree d'abonnement en fonction de la valeur recue en
         * parametre. Lorsque la valeur du parametre ne fait pas partie
         * des valeurs permises, AUCUNE modification n'est affectuee.
         */
        public void setDuree ( int nouvDuree ) {
            if(nouvDuree >= DUREE_MIN && nouvDuree <= DUREE_MAX){
                this.duree = nouvDuree;
            }
     
        }
     
        /*
         * Modifie le type d'abonnement en fonction de la valeur recue en
         * parametre. Lorsque la valeur du parametre ne fait pas partie
         * des valeurs permises, AUCUNE modification n'est affectuee.
         */
        public void setAbonnement ( int nouvAbon ) {
            if(nouvAbon >= SORTE_ABON_MIN && nouvAbon <= SORTE_ABON_MAX){
                this.abonnement = nouvAbon;
            }
     
        }
     
        /*
         * Modifie le nom de l'abonne en fonction de la valeur recue en
         * parametre. Lorsque le parametre ne respecte pas les regles
         * de validite, AUCUNE modification n'est affectuee.
         * IMPORTANT 1 : Modifie l'identifiant AU BESOIN... 
         * IMPORTANT 2 : Ne modifie AUCUNE autre variable. 
         */
        public void setNom ( String nouvNom ) {
            if((Character.isAlphabetic(nouvNom.charAt(0)) && (Character.isAlphabetic(nouvNom.charAt(1))) 
                && (nouvNom.length() >= LONG_NOM_PRENOM_MIN))){
                this.nom = nouvNom;
            }
     
        }
     
        /*
         * Modifie le prenom de l'abonne en fonction de la valeur recue en
         * parametre. Lorsque le parametre ne respecte pas les regles
         * de validite, AUCUNE modification n'est affectuee.
         * IMPORTANT 1 : Modifie l'identifiant AU BESOIN... 
         * IMPORTANT 2 : Ne modifie AUCUNE autre variable. 
         */
        public void setPrenom ( String nouvPre ) {
     
            if((Character.isAlphabetic(nouvPre.charAt(0)) && (Character.isAlphabetic(nouvPre.charAt(1))) 
                && (nouvPre.length() >= LONG_NOM_PRENOM_MIN))){
                this.prenom = nouvPre;
            }
     
        }
     
        //----------   P a r t i e   p r i v e e   ----------//
        // Methodes utilitaires
        /*
         *  Genere un identifiant d'abonne en prenant les 2 premiers caracteres du nom 
         *  (en MAJUSCULES) et les 2 premiers caracteres du prenom (en MAJUSCULES), suivis 
         *  des deux derniers chiffres de l'annee de debut d'abonnement et des deux chiffres 
         *  du mois du debut de l'abonnement (si le mois a un seul chiffre, exemple�: 9 pour 
         *  septembre, ajoute 0 devant pour avoir 2 chiffres).  Ajoute finalement les chiffres 
         *  correspondant au numero d'abonne. 
         */
        private void genererIdentifiant (){
     
            String deuxLNom = nom.substring(0,2);
            deuxLNom = deuxLNom.toUpperCase();
            String deuxLPrenom = prenom.substring(0,2);
            deuxLPrenom = deuxLPrenom.toUpperCase();
            int ChfrAnneeDebut = (annee / 10) % 10;
            int ChfrAnneeFin = annee % 10;
            String nouvMois;
            if(mois < 10){
                nouvMois = "0" + mois;
            }else{
                nouvMois = "" + mois;
            }
            NoAbonne = NoAbonne + 1;
            numAbon = NoAbonne;
     
            identifiant = deuxLNom + deuxLPrenom + "" + ChfrAnneeDebut + "" + ChfrAnneeFin   + nouvMois  + numAbon; 
     
        }
     
        /*
        Retourne true si la valeur et entre le min et le max inclusivement.
        Retourne false dans le cas contraire.
         */
        private static boolean entreMinMax (int valeur, int min, int max){
            boolean valMinMax;
            if(valeur >= min && valeur <= max){
                valMinMax = true;
            }else{
                valMinMax = false;
            }
            return valMinMax;
        }
     
        /*
        Retourne true si le param�tres est une chaine de caracteres alphabetiques 
        de longueur 2 ou plus pouvant aussi contenir des espaces (mais seulement si 
        les 2 premiers caracteres ne sont pas des espaces). Retourne false dans tous
        les autres cas.
         */
        private static boolean nomPrenomValide (String nomOuPrenom){
            boolean validiteNomPrenom;
            if(Character.isAlphabetic(nomOuPrenom.charAt(0)) && (Character.isAlphabetic(nomOuPrenom.charAt(1)))
            && nomOuPrenom.length() >= LONG_NOM_PRENOM_MIN){
                validiteNomPrenom = true;           
            }else{
                validiteNomPrenom = false;
            }
            return validiteNomPrenom;
        }
     
        // Variable de classe (commune a toutes les instances)
        String identifiant;
        // qui servira � generer le numero d'abonne.
     
        // Variables d'instances
        private String nom;
        private String prenom;
        private int abonnement;
        private int mois;
        private int annee; 
        private int duree;
        private int numAbon;
    Ensuite on m'a donne une autre class ceci :

    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 static Abonne trouverAbonne (Abonne [] tabAb, int numero){
     
     
            //Retourne un abonné en fonction de son numéro d'identification. Retourne null lorsqu'il n'y a pas d'abonné avec ce
            //numéro dans le tableau.
     
        }
     
    public static Abonne [] agrandirTableauDe5 (Abonne [] tabAb){
     
            //Retourne un tableau d'abonnés contenant tous les abonnés du tableau reçu en paramètre suivis de 5 cases sans
            //abonné. Retourne un tableau de longueur 5 sans abonnés si tabAb est null ou si tabAb est de longueur 0.
        }

    Merci pour votre aide !!!

    Depuis deux semaines, je tourne sur ces deux la... et je ne sais pas par ou commence.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2015
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Pour la méthode trouverAbonne tu reçois un tableau qui correspond à la zone de recherche et un numéro qui est probablement une valeur du champs "numAbon" de la classe Abonne.
    Pour répondre au besoin du commentaire, essaie de parcourir le tableau de "Abonne" que tu reçois et cherche si le numAbon correspond à celui qui est fourni en paramètre.

    Pour agrandirTableauDe5 tu as 2 cas possible :
    1/ le tableau tabAb est null et tu dois retourner un tableau vide de 5 cases
    2/ le tableau tabAb est non null et tu dois créer une copie qui est plus grande de 5 cases. Pour cela, tu dois récupérer la taille du tableau, faire un nouveau tableau avec taille+5 cases et copier une à une les anciennes valeurs dans le nouveau tableau avec une boucle for.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    merci pour votre aide.

    Citation Envoyé par Eehol Voir le message
    Bonjour,


    Pour agrandirTableauDe5 tu as 2 cas possible :
    1/ le tableau tabAb est null et tu dois retourner un tableau vide de 5 cases
    2/ le tableau tabAb est non null et tu dois créer une copie qui est plus grande de 5 cases. Pour cela, tu dois récupérer la taille du tableau, faire un nouveau tableau avec taille+5 cases et copier une à une les anciennes valeurs dans le nouveau tableau avec une boucle for.
    Pour ceci voici ce j'ai fait :

    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
     
     
    public static Abonne [] agrandirTableauDe5 (Abonne [] tabAb){
            final int blocTab = 5;
            int nbBloc = 1;
            int nbAbonne = 0;
     
            // **************************************
            // Création du tableau et copie des datas
            // **************************************
     
            // Création du tableau d'article ayant pour taille 1 Bloc
            tabAb = new Abonne[blocTab];
     
            do {
                // Si l on arrive a la taille max du tableau
                if (nbAbonne == nbBloc * blocTab) {
                    // On crée un tableau temporaire de même taille que la source
                    Abonne tabTemp [] = new Abonne[nbBloc * blocTab];
                    // On copie le contenu (nom, prenom, sorte, annee, mois, 
                    //et longueur de la copie)
                    System.arraycopy(tabAb, 0, tabTemp, 0, tabAb.length);
                    // On supprime l'objet (tableau d'origine) et on le recrée 
                    //avec la bonne taille
                    tabAb = new Abonne[(nbBloc + 1) * blocTab];
     
                    //Retourne un tableau d'abonnés contenant tous les abonnés du tableau reçu en paramètre suivis de 5 cases sans
                    //abonné.               
     
                }else if (tabAb == null || tabAb.length == 0){
     
                    return new Abonne[blocTab];
                    //Retourne un tableau de longueur 5 sans abonnés si tabAb est null ou si tabAb est de longueur 0.
     
                }
     
            } while(true);
    Pourriez vous me le corriger s'il y a lieu .

    Bonjour,

    Pour la méthode trouverAbonne tu reçois un tableau qui correspond à la zone de recherche et un numéro qui est probablement une valeur du champs "numAbon" de la classe Abonne.
    Pour répondre au besoin du commentaire, essaie de parcourir le tableau de "Abonne" que tu reçois et cherche si le numAbon correspond à celui qui est fourni en paramètre.
    Je ne sais pas comment faire appeler une methode (ou instance) privee d'une classe depuis une autre classe.

    Merci.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2015
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Ton code ne peut pas fonctionner, en effet tu donnes des valeurs static à tes 3 variables (0, 1 et 5) et tu compares si 0 est égal à 1*5.
    De plus, tu écrases le tableau que tu reçois en paramètre en créant directement un nouveau tableau de taille 5... tu perds donc l'info sur sa taille précédente, sur ce qu'il contenait, etc.

    Voici en pseudo code ce à quoi cela devrait ressembler d'après moi, cela peut tenir en moins de 10 lignes.

    Si tabAb est null
    ***return nouveau tableau de 5 cases
    Fsi
    nouveauTableau = new Abonne[taille ancien tableau + 5]
    System.arraycopy(tabAb dans nouveauTableau)
    return nouveauTableau


    Je ne sais pas comment faire appeler une methode (ou instance) privee d'une classe depuis une autre classe.
    En relisant ton premier post, je pense que c'est plutôt identificant que tu dois utiliser, celui-ci est accessible via son getter.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Merci,

    Si tabAb est null
    ***return nouveau tableau de 5 cases
    Fsi
    nouveauTableau = new Abonne[taille ancien tableau + 5]
    System.arraycopy(tabAb dans nouveauTableau)
    return nouveauTableau

    donc comme ingredients, j'aurai :

    final int blocTab = 5;

    tabAb == null pour condition if

    newTab = new Abonne[blocTab + 5]

    J'ai l'impression qu'il me manque une variable newTab et comment mettre "tabAb dans nouveauTableau" comme vous dites, il se peut qu'on n'ait pas le meme vocabulaire.

    J'ai ceci

    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
     
    final int blocTab = 5;
     
    tabAb = new Abonne[blocTab];
     
            do {
                if (tabAb == null ){
     
                    return new Abonne[blocTab];
                    //Retourne un tableau de longueur 5 sans abonnés si tabAb est null ou si tabAb est de longueur 0.
     
                }
     
                newTab = new Abonne[blocTab + 5];
                System.arraycopy(tabAb, newTab.length);
                return newTab;
    } while(true);
    Cordialement.

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Merci bcp pour votre aide. J'ai reussi a debloque la situation.

    Cependant il m'arrive quelque chose de tres bizarre. Voici le code de la methode dans une classe.

    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
     
    public Abonne ( String nom, String prenom, int abonnement, int mois, int annee ) {
            nom = nom.toUpperCase();
            prenom = prenom.toUpperCase();
     
            if((nom.charAt(0) >= 'A' && nom.charAt(0) <= 'Z') && (nom.charAt(1) >= 'A' && nom.charAt(1) <= 'Z')
            && nom.length() >= 2){
                this.nom = nom;
            }else {
                this.nom = NOM_DEFAUT;
            }
            if((prenom.charAt(0) >= 'A' && prenom.charAt(0) <= 'Z') && (prenom.charAt(1) >= 'A' && prenom.charAt(1) <= 'Z') 
            && prenom.length() > 1){
                this.prenom = prenom;
            }else {
                this.prenom = PRENOM_DEFAUT;
            }
            if (abonnement < SORTE_ABON_MIN || abonnement > SORTE_ABON_MAX){
                this.abonnement = ABON_DEFAUT;
            }else {
                this.abonnement = abonnement;
            }
            if (mois < MOIS_MIN || mois > MOIS_MAX){
                this.mois = MOIS_DEFAUT;
            }else{
                this.mois = mois;
     
            }
            if(annee < ANNEE_MIN || annee > ANNEE_MAX){
                this.annee = ANNEE_DEFAUT;
            }else{
                this.annee = annee;
            }
     
            duree = 12;
     
            genererIdentifiant();
     
        }
    lorsque je teste avec des donnees incorrectes pour verification:
    nom : "L"
    prenom: "l"
    abonnement: 4
    mois :6
    annee "2009

    On m'affiche ceci error : StringOutOfBoundsException: Stringindex out of range : 1
    at java.lang.String.CharAt(String.java:658) (en gris)
    at Abonne.<init>(Abonne.java:84) (en rouge) dont la correpondance est la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if((nom.charAt(0) >= 'A' && nom.charAt(0) <= 'Z') && (nom.charAt(1) >= 'A' && nom.charAt(1) <= 'Z')
            && nom.length() >= 2){
    Dans mon enonce, il est mentionne de ne pas utliser de try catch ni de throws pour cet exception.

    J'ai tout essaye, mais rien.

    Pourriez vous me donner une proposition ou des propositions.

    Je vous remercie !!!

    Amicalement.

  7. #7
    Modérateur

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

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

    ben, si le nom est "L", que penses-tu qu'il se passe quand tu fais nom.charAt(1) ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Si je fais "LL" ou "L1" ou " L" ou "ll" ou "l7". ca marche !!!

  9. #9
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    ... Certes. Du coup, tu vois ce qui ne va pas ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre à l'essai
    Femme Profil pro
    Collégien
    Inscrit en
    Novembre 2017
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Marshall (iles)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Novembre 2017
    Messages : 28
    Points : 10
    Points
    10
    Par défaut
    Non !!!

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Je ne vois pas ou est le probleme !!!

    dois je creer un else if pour dire si c'est un caractere alors afficher un message sopln "Error" !!!

    A part ce je pense mon code est correct ou bien je dois changer mes lunettes !!!

    Merci.

  12. #12
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Je t'ai posé une question :

    Citation Envoyé par thelvin
    si le nom est "L", que penses-tu qu'il se passe quand tu fais nom.charAt(1) ?
    et je ne me souviens pas t'avoir dispensé d'y répondre. Quelle est ta réponse à cette question ?

    Citation Envoyé par MayoCinqo Voir le message
    dois je creer un else if pour dire si c'est un caractere alors afficher un message sopln "Error" !!!
    Il y a de l'idée... Mais en principe c'est déjà plus ou moins prévu, juste pas pile comme il faut.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Si je ne mets rien dans CharAt(1), c'est la que ca pile pas.

    OK , alors je supprime tout ce qui est CharAt(1). Ca marche , ok !!!

    Mais si je fais "L " ou ""1L" ou "12" ca doit m'afficher "Nom inconnue" et "Prenom Inconnu". Ca ne me le fait plus !!!
    Quel embarras !!!

    Des suggestions ?

  14. #14
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Pour l'amour du ciel, réponds simplement à ma question.

    Qu'est-ce que ça a de si compliqué, quand on te pose des questions, d'y répondre ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    si le nom est "L", que penses-tu qu'il se passe quand tu fais nom.charAt(1) ?
    Je ne mets rien dans nom.charAt(1) donc ca ne pile pas.

    C ca que j'ai compris !!!

  16. #16
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Alors :

    - le verbe "piler" n'existe pas. Ou du moins pas dans le domaine de la programmation. Je suppose qu'il n'y a pas de riz à réduire en poudre dans ce programme.

    - nom.charAt(1) est un appel de méthode, donc en effet, il y a peu de chances que tu aies mis des choses dans un appel de méthode.

    Dis-nous simplement, avec des mots clairs, qu'est-ce que ça fait quand on appelle nom.charAt(1) ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  17. #17
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    qu'est-ce que ça fait quand on appelle nom.charAt(1) ?
    J'appelle la methode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    public String getNom(){
            return nom;
        }   
     
        public String getPrenom(){
            return prenom;
        }

  18. #18
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut
    Non. Petite indice, tu appel une méthode que tu n'as pas écrit toi même.
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

  19. #19
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    appel une méthode que tu n'as pas écrit toi même
    Wow, ca la !!! ca me depasse.

    par tatonnement je pourrai faire quelquechose comme ca : chaine!=null&&tab!=null&&chaine.length!=0&&tab.length!=0

  20. #20
    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 : 54
    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
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Pourquoi chercher à tatonner je ne sais quoi au lieu de répondre à la question :

    Citation Envoyé par thelvin Voir le message
    ben, si le nom est "L", que penses-tu qu'il se passe quand tu fais nom.charAt(1) ?
    Pour te guider, exécute ce programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class Test {
     
            public static void main(String[] args) {
     
                       String nom = "L";
                       System.out.println( nom.charAt(1) );
     
            }
    }
    et tu auras la réponse. Maintenant, pourquoi ce résultat d'exécution à ton avis ?

    Et on t'a déjà donné un indice important qui te donne la solution à ton problème :
    Citation Envoyé par thelvin Voir le message
    Il y a de l'idée... Mais en principe c'est déjà plus ou moins prévu, juste pas pile comme il faut.
    J'ajouterais que c'est juste une question d'ordre...

    Pour t'aider encore plus, rappel : lorsqu'on fait un et (&&) (ou un ou (||) aussi), entre plusieurs expressions booléennes, elles sont évaluées dans l'ordre de gauche à droite. Si le résultat d'une des expressions est suffisante pour déduire le résultat complet, on n'évalue pas les conditions suivantes (se trouvant sur la droite). Deuxième rappel : a && b est faux, si au moins l'un des opérandes est faux, quelque soit la valeur des autres). Donc si tu as if ( a && b ) et que a est faux, alors l'expression complète l'est donc forcément, et donc b n'est pas évalué. Ou encore dans le code suivant le test b==42 n'est pas exécuté (seul a==1 l'est, et il est false) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int a=0,b=42;
    if ( a==1 && b==42 ) {
    }
    Second rappel : a && b = b && a.
    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.

Discussions similaires

  1. Appel d'une methode java dans un fichier jsp
    Par kodo dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 06/05/2006, 13h46
  2. exécuter une classe dans un jar a partir d'une methode java
    Par yann_p dans le forum API standards et tierces
    Réponses: 13
    Dernier message: 13/04/2006, 15h50
  3. [Applet] appel de methodes java en javascript
    Par soulhouf dans le forum Applets
    Réponses: 16
    Dernier message: 06/09/2005, 14h18
  4. [Reflection] Interpreter une chaine en une methode java
    Par shaun_the_sheep dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 09/10/2004, 15h11

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