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 :

(Débutant) Java string


Sujet :

Langage Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 6
    Points : 4
    Points
    4
    Par défaut (Débutant) Java string
    bonjour,

    Voici le numéro que je dois faire pour mon cours ( en fait c'est le numéro 2 qui cause problème):

    -----

    Écrivez un programme en Java dont la méthode main comportera, entre autres, la déclaration suivante :
    String telUDM = "5143436111", telJean = "4503861504";

    Ce programme, utilisera des méthodes, qui permettront

    1. d’extraire les sous-chaînes consistant aux informations suivantes : code régional et le reste du numéro de téléphone. Faire ensuite afficher un message sous la forme :
    Téléphone d’UdM : (514) 343-6111
    Téléphone de Jean : (450) 386-1504

    2. de compter et d’afficher le nombre de fois qu’un chiffre passé en paramètre se retrouve dans un numéro de téléphone :
    Il y a 2 fois le chiffre 3 dans le numéro de téléphone d’UdM.
    Il y a 4 fois le chiffre 1 dans le numéro de téléphone d’UdM.
    Il y a 2 fois le chiffre 4 dans le numéro de téléphone de Jean..


    ------




    voici le code que j'ai tenté de faire, mais j,ai des erreurs concernant le code du numéro 2.

    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
    /**
     * @(#)tp3c.java
     *
     * tp3c application
     *
     * @author 
     * @version 1.00 2016/6/27
     */
     
    public class tp3c {
     
     
     
     
     static int nbOccur(String tel, char c)
    {
        int count = 0;
        for (int i=0; i < tel.length(); i++)
        {
            if (tel.charAt(i) == c)
            {
                 count++;
            }
        }
        return count;
    }
     
     
     
     
        public static void main(String[] args) {
     
           String telUDM = "5143436111", telJean = "4503861504";
     
     
           int codeUDM = Integer.parseInt( telUDM.substring(0,3));
           int codeJean = Integer.parseInt( telJean.substring(0,3));
           int debUDM = Integer.parseInt( telUDM.substring(3,6));
           int debJean = Integer.parseInt( telJean.substring(3,6));
            int resteUDM = Integer.parseInt( telUDM.substring(6));
           int resteJean = Integer.parseInt( telJean.substring(6));
     
     
          System.out.printf("Téléphone d’UdM   : (%d)%d-%d\n", codeUDM, debUDM, resteUDM );
     
     
          System.out.printf("Téléphone de Jean : (%d)%d-%d\n",codeJean, debJean, resteJean );
     
     
           System.out.printf(" - blablabla %d\n", nbOccur(telUDM, tel.length, 4));
     
     
     
     
     
        }
    }
    Je dois rester dans ce genre de structure de code là pour compléter ce travail.


    Merci infiniment, je galère depuis hier matin.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Points : 349
    Points
    349
    Par défaut
    Citation Envoyé par matthieulauzon Voir le message
    System.out.printf(" - blablabla %d\n", nbOccur(telUDM, tel.length, 4));/*La méthode que j'ai colorée en rouge accepte un argument de type STRING et un de type CHAR or toi,tu lui passes jusqu'à 3 arguments et aucun n'est de type CHAR.*/
    [/CODE]
    Je commence par signaler que ta méthode nbOccur devrait avoir un argument de type INT au lieu de CHAR pour respecter les spécifications de l'exercice.
    De plus,ton code tel que présenté,tu n'auras que le nombre de fois qu’un chiffre apparaît dans un et un seul numéro mais pas dans les 2.pour l'avoir dans les 2 numéros 2 options sont possibles :

    1. Ajouter un argument de type STRING(qui représenterait le deuxième numéro) et faire en sorte que ta méthode nbOccur puisse te renvoyer le nombre de fois que le chiffre passé en paramètre apparaît dans le premier et deuxième numéro.
    2. Appeler la méthode nbOccur à 2 reprises dans le main avec respectivement comme argument telUDM et telJean vice versa ainsi que le chiffre.

  3. #3
    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
    Salut,

    Citation Envoyé par Kasko Voir le message
    [...]2 options sont possibles :

    1. Ajouter un argument de type STRING(qui représenterait le deuxième numéro) et faire en sorte que ta méthode nbOccur puisse te renvoyer le nombre de fois que le chiffre passé en paramètre apparaît dans le premier et deuxième numéro.
    2. [...]
    L'exercide demande de faire une méthode pour compter le nombre d'occurances d'un chiffre dans UN numéro de téléphone, point. Il n'y a pas à chercher à faire une méthode qui le ferait dans 2. Ensuite, il suffit de l'appeler pour chaque numéro, point.

    Simplement, il n'y a pas besoin de passer la taille d'une autre chaine en paramètre (le tel.length dans nbOccur(telUDM, tel.length, 4))).

    Ensuite, il faut faire attention à ce que le caractère (char) '4' n'est pas le chiffre int 4. Même en castant. Le int utiliser pour représenter un '4' est un code, comme il y a un code pour le caractère 'A', ou '!' ou autre. Et ce code n'a rien à voir avec la valeur du chiffre. Si on veut passer un chiffre (un int) pour le compter dans le numéro de téléphone, il faut faire une conversion (int vers char, ou String vers int, ou int vers String).

    Il y a plusieurs manière de le faire, et la manière que tu utiliseras pour faire ton exercice, Mathieu, dépendera de ce que tu as le droit d'utilser pour le faire.

    1. si tu peux utiliser String.indexOf(), tu peux par exemple passer le chiffre en int, le convertir en String et utiliser indexOf(String, int) pour chercher le chiffre dans la chaine et compter le nombre de fois qu'il s'y trouve
    2. tu peux faire une boucle, utiliser un substring() au lieu d'un charAt() pour récupérer le chiffre à la position courante et le comparer avec le chiffre préalablement convertir en String
    3. en utilisant un charAt(), donc pour faire la comparaison avec un char, il faut donc convertir le int en char :
      • Soit utiliser une conversion int vers String, puis prendre le premier caractère (avec un charAt)
      • soit utiliser le fait que les codes des chiffres de '0' à '9' se suivent, qu'en Java, on peut additionner des char et des int , qui donne un int (un code de caractère), qu'on peut reconvertir en char :
        char c = (char)('0'+chiffre); permet donc d'obtenir le caractère c (char) qui correspond au chiffre (int).

    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.

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Points : 349
    Points
    349
    Par défaut
    Salut.

    Citation Envoyé par joel.drigo Voir le message
    L'exercide demande de faire une méthode pour compter le nombre d'occurances d'un chiffre dans UN numéro de téléphone, point. Il n'y a pas à chercher à faire une méthode qui le ferait dans 2. Ensuite, il suffit de l'appeler pour chaque numéro, point.
    Ah ok.J'ai mal interprété le problème.Sinon quand j'ai regardé l'exemple du rendu qu'il a montré(Il y a 2 fois le chiffre 3 dans le numéro de téléphone d’UdM;Il y a 4 fois le chiffre 1 dans le numéro de téléphone d’UdM;Il y a 2 fois le chiffre 4 dans le numéro de téléphone de Jean..) j'ai cru comprendre qu'il veuille ce nombre d'occurrences dans les 2 téléphones.Bref,comme ces derniers sont tous déclarés dans la méthodes main,je pensais qu'il veuille une méthode quand il l'appelle,il lui passe ces 2 numéros ainsi que le chiffre et elle lui renvoie le nombre d'occurrences de ce chiffre dans ces 2 numéros.

    Citation Envoyé par joel.drigo Voir le message
    tu peux par exemple passer le chiffre en int
    Je crois que c'est le but même de l'exercice.C'est pourquoi j'ai proposé à ce que la méthode prenne un int en paramètre en lieu et place du char.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    merci bcp J'ai réussi

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    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
    /**
     * @(#)tp3c.java
     *
     * tp3c application
     *
     * @author 
     * @version 1.00 2016/6/27
     */
     
    public class tp3c {
     
     
     
     
     static int nbOccur(char c,String tel)
    {
        int count = 0;
        for (int i=0; i < tel.length(); i++)
        {
            if (tel.charAt(i) == c)
            {
                 count++;
            }
        }
        return count;
    }
     
     
     
     
        public static void main(String[] args) {
     
           String telUDM = "5143436111", telJean = "4503861504";
     
    		char c = '3', b= '1', a= '4';
     
           int codeUDM = Integer.parseInt( telUDM.substring(0,3));
           int codeJean = Integer.parseInt( telJean.substring(0,3));
           int debUDM = Integer.parseInt( telUDM.substring(3,6));
           int debJean = Integer.parseInt( telJean.substring(3,6));
           int resteUDM = Integer.parseInt( telUDM.substring(6));
           int resteJean = Integer.parseInt( telJean.substring(6));
     
     
          System.out.printf("Téléphone d’UdM   : (%d)%d-%d\n", codeUDM, debUDM, resteUDM );
          System.out.printf("Téléphone de Jean : (%d)%d-%d\n",codeJean, debJean, resteJean );
          System.out.println("Il y a " + nbOccur(c, telUDM) + " fois le chiffre " + c + " dans le numéro de téléphone d’UdM.");
    	  System.out.println("Il y a " + nbOccur(b, telUDM) + " fois le chiffre " + b + " dans le numéro de téléphone d’UdM.");              
          System.out.println("Il y a " + nbOccur(a, telJean) + " fois le chiffre " + a + "dans le numéro de téléphone de Jean.");                            
     
     
        }
    }
    voici le code final.

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

Discussions similaires

  1. [Débutant][Java] Web Service
    Par ArseNic dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 14/11/2005, 11h09
  2. [Java/String] Completer une chaine avec un caractere
    Par shaun_the_sheep dans le forum Langage
    Réponses: 4
    Dernier message: 31/05/2005, 09h01
  3. [débutant][Tooltip] String - passer à la ligne
    Par pingoui dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 21/01/2005, 12h25
  4. [Débutant] java.lang.object
    Par bonnefr dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 27/05/2004, 14h54
  5. [débutante][java]connection internet PPC\PC de bureau
    Par Emma20 dans le forum Développement
    Réponses: 2
    Dernier message: 19/05/2004, 14h01

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