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

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : avril 2013
    Messages : 30
    Points : 23
    Points
    23

    Par défaut Java : tableau de caractères

    Bonsoir,

    je suis devant une nouvelle problématique.
    J'ai un 1er exercice où on me demande de développer une fonction nbreoccuurrence qui prend comme arguments un tableau de char t et un char a, et renvoie le nombre de fois où on a trouvé a dans t.
    Puis un second où on me demande de développer une méthode.

    Du coup je me dis que pour réaliser le second j'ai besoin du 1er.

    J'ai développé un programme mais qui plante...

    Le voici

    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
    import java.util.Scanner;
    public class essai {
    	private static Scanner reader;
    		public static void main(String[] args) {	
    			reader = new Scanner(System.in);
    			char t[];
    	System.out.print("Entrez la chaîne de caractères :");
    	String carac = reader.nextLine();
    			char a ;
    	System.out.print("Entrez le caractère à rechercher :");
    	a = reader.nextLine();
     
    	public static int nombreDOccurence (char t[], char a) {
    		int  cpt=0;
    		for(int i = 0; i < tab.length; ++i) {
    		if(t[i]==a) { cpt++;}
    		}
    			return cpt;
    		}
    	}
    Merci pour vos retours

  2. #2
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    mars 2016
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Russie

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2016
    Messages : 80
    Points : 173
    Points
    173

    Par défaut

    Hello,

    Ça veut dire quoi il plante ?
    Tu as quoi comme erreur?
    Car à première vu la syntaxe est pas bonne, vérifie les accolades il t’en manque.


    Jérémy

  3. #3
    Expert éminent
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    juillet 2013
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : juillet 2013
    Messages : 2 713
    Points : 6 349
    Points
    6 349

    Par défaut

    Citation Envoyé par choukie12 Voir le message
    Ça veut dire quoi il plante ?
    Regarde vite-fait dans sa boucle for : tab.length

    La variable tab n'existe pas. Et en plus je ne connais pas trop le Java , mais la variable t c'est un Plain Old Data, et pas un objet avec un attribut length (en JavaScript cela fonctionne par contre)

  4. #4
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    mars 2016
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Russie

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2016
    Messages : 80
    Points : 173
    Points
    173

    Par défaut

    Citation Envoyé par foetus Voir le message
    Regarde vite-fait dans sa boucle for : tab.length

    La variable tab n'existe pas. Et en plus je ne connais pas trop le Java , mais la variable t c'est un Plain Old Data, et pas un objet avec un attribut length (en JavaScript cela fonctionne par contre)
    Oui j'avais vu, et c'est pas le seul truc :
    il y a un méthode implémenté dans un autre méthode, il manque l'accolade de fin de la classe..


    le .length marche sur les array en java, mais si et seulement si la variable existe et que c'est un array bien défini...

    Ça veut dire quoi il plante ?
    Tu as quoi comme erreur?
    J'ai demandé ca juste pour qu'il explique ce qu'il a vu qui ne marchait pas... car je viens de le mettre sous mon IDE, et c'est des guirlandes de noël

    PS : Je connaissais pas le spoiler c'est terrible ahah
    Jérémy.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : avril 2013
    Messages : 30
    Points : 23
    Points
    23

    Par défaut

    bonsoir,

    effectivement, je ne sais pas comment définir le "a" sur la ligne 11.
    a = reader.nextLine();

    et la ligne 15 plante mais je ne vois pas pourquoi ?
    for(int i = 0; i < tab.length; ++i) {

    Par contre pas de problème d'accolade...

    C'est beau une guirlande !! ;-)

  6. #6
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : avril 2013
    Messages : 30
    Points : 23
    Points
    23

    Par défaut

    j'ai repris mon programme... c'est pas encore ça !!
    dites moi ce que vous en pensez

    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
    import java.util.Scanner;
    public class essai {
    	private static Scanner reader;
    		public static void main(String[] args) {	
    			reader = new Scanner(System.in);
    	System.out.println("Enter the String");
    	String s = reader.next();
    	char a [] = s.toCharArray();
    	System.out.println("Enter the character you are looking for");
    	System.out.println(s);
    	String c = reader.next();
    	char d = c.charAt(0);
    		}
     
    	public static int nombreDOccurence (char a [], char d) {
    		int  cpt=0;
    		for(int i = 0; i < tab.length; ++i) {
    		if(a[i]==d) { cpt++;}
    		}
    			return cpt;
    		}
    }

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    octobre 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2013
    Messages : 77
    Points : 102
    Points
    102

    Par défaut

    Salut,

    En parcourant ton dernier code, cela semble bon. Y'a t'il encore un souci ?

    Je ne sais pas si la librarie Scanner le permet mais j'aurai juste tendance a ajouter une validation sur les valeurs inserees par l'utilisateur. A savoir que le mot ne soit pas vide et que le caractere a rechercher ne soit vide non plus.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : avril 2013
    Messages : 30
    Points : 23
    Points
    23

    Par défaut

    Bonsoir Yonito,

    Effectivement il me reste une erreur au niveau de la boucle ce qui m'empêche de lancer le programme.
    J'ai aussi 2 avertissements ligne 8 et 12 "the value of the local variable is not used".

    Merci pour tes retours

  9. #9
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : avril 2013
    Messages : 30
    Points : 23
    Points
    23

    Par défaut

    Pardon ce n'est pas bloquant
    par contre le programme ne compte le nombre d’occurrence

  10. #10
    Membre éclairé Avatar de Cincinnatus
    Homme Profil pro
    Développeur Java
    Inscrit en
    mars 2007
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : mars 2007
    Messages : 304
    Points : 841
    Points
    841

    Par défaut

    Citation Envoyé par steph-0329 Voir le message
    Pardon ce n'est pas bloquant
    par contre le programme ne compte le nombre d’occurrence
    Bonjour,

    La méthode nombreDOccurence n'est pas appelée...

    Les lignes 8 et 12 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     char a [] = s.toCharArray();char d = c.charAt(0);

    ne servent à rien. C'est ce que signifient les avertissements que tu indiques et que tu ignores pourtant.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : avril 2013
    Messages : 30
    Points : 23
    Points
    23

    Par défaut

    En ce qui concerne les lignes 8 et 12, à mon sens je les utilisais dans nombreDOccurence.

    Ci dessous j'essaie d'appeler la méthode.
    Je ne dois pas le faire correctement.


    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
    import java.util.Scanner;
    public class essai {
    	private static Scanner reader;
    		public static void main(String[] args) {	
    			reader = new Scanner(System.in);
    	System.out.println("Enter the String");
    	String s = reader.next();
    	char a [] = s.toCharArray();
    	System.out.println("Enter the character you are looking for");
    	System.out.println(s);
    	String c = reader.next();
    	char d = c.charAt(0);
    		}
     
    	public static int nombreDOccurence (char a [], char d) {
    		int  cpt=0;
    		for(int i = 0; i < tab.length; ++i) {
     
    		if(a[i]==d) { cpt++;}
    		}
    			return cpt;
    	}
    	public static void nombreDOccurence (char a [], char d);
    }

Discussions similaires

  1. Convertir une string en tableau de caractères
    Par alainpeniche dans le forum C++
    Réponses: 4
    Dernier message: 06/01/2007, 21h00
  2. [JAVA] Tableau
    Par torNAdE dans le forum Langage
    Réponses: 3
    Dernier message: 08/05/2006, 10h53
  3. Réponses: 8
    Dernier message: 07/04/2006, 12h18
  4. convertir un tableau de caractère en float
    Par zerocoolyoussef dans le forum C
    Réponses: 3
    Dernier message: 20/03/2006, 23h27
  5. Réponses: 4
    Dernier message: 15/03/2005, 10h45

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