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

Collection et Stream Java Discussion :

Tableau de String


Sujet :

Collection et Stream Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Par défaut Tableau de String
    Bonjour,
    Ce programme demande d'entrer un chiffre (nombre d'animaux), puis d'introduire dans un tableau des strings les especes : cheval, chien, chat...
    Mais j'ai une erreur au début...
    Merci...

    import java.util.Scanner;

    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
    public class Animal 
    {
     
    	public static void main(String[] args) {
     
    		Scanner sc = new Scanner(System.in);
    		System.out.println("Donner le nombre des animaux :");
    		int nbAnim = sc.nextInt();
     
    		String []tab1 = new String [nbAnim];
    		for (int i = 0; i < tab1.length; i++) {
    			System.out.println("Saisir espece " + (i+1));
    			tab1[i] = sc.nextLine();
    			}
     
    		for (int i = 0; i < tab1.length; i++) {
    			System.out.println("Animal "+ (i+1) +" = "+ tab1[i]);
    		}
     
    		}

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (int i = 0; i < tab1.length; i++) {
    	System.out.print("Saisir espece " + (i+1)+ " : ");
    	tab1[i] = sc.next();
    	System.out.println();
    }
    A+.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (int i = 0; i < tab1.length; i++) {
    	System.out.print("Saisir espece " + (i+1)+ " : ");
    	tab1[i] = sc.next();
    	System.out.println();
    }
    A+.
    Merci beaucoup !

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Par défaut
    Une question concernant l'appel d'une fonction depuis "swhitch" : j'ai toujours l'erreur du code à l'intérieur du switch...
    Merci pour votre aide...

    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
    public class Animal 
    {
     
    	public static void main(String[] args) {
     
    		Scanner sc = new Scanner(System.in);
    		System.out.println("Donner le nombre des animaux :");
    		int nbAnim = sc.nextInt();
     
    		String []tab1 = new String [nbAnim];
    		for (int i = 0; i < tab1.length; i++) {
    	System.out.print("Saisir espece " + (i+1)+ " : ");
    	tab1[i] = sc.next();
    	System.out.println();
     
     char reponse;
     
    		{
    		System.out.println(" Veuillez choisir : ");
    		System.out.println(" 1 - Afficher les animaux");
    		System.out.println(" 2 - Supprimer un animal");
    		System.out.println(" 3 - Quitter l'application");
    			Scanner scReponse = new Scanner(System.in);
    			choix=scReponse.nextInt();
     
    			switch (choix)
    			{
    			case a: afficherLesAnimaux();
    			break;
    			case b: SupprimerUnAnimal();
    			break;		
    			case c: System.exit(0);
    			break;
    			}
    		}
     
    //Fonctions		
    String afficherLesAnimaux(String args) 
    {
     for (int i = 0; i < < tab1.length; i++) 
     {
      System.out.println("Animal "+ (i+1) +" = "+ tab1[i]);			
      return args; }
    }
    }

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    La variable choix dans switch est de type int, or que les variables a, b et c dans les case ne sont même pas définit. Remplace a,b et c par 1, 2 et 3 ensuite ajoute un default sinon tu auras une boucle infinie dans le cas ou l'utilisateur entre un autre entier.

    A+.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Bonjour,

    La variable choix dans switch est de type int, or que les variables a, b et c dans les case ne sont même pas définit. Remplace a,b et c par 1, 2 et 3 ensuite ajoute un default sinon tu auras une boucle infinie dans le cas ou l'utilisateur entre un autre entier.

    A+.
    Ca va beaucoup mieux, mais j'ai toujours "AfficherLesAnimaux" souligné dans le switch...

    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
    public class Animal 
    {
     
    	public static void main(String[] args) {
     
    		Scanner sc = new Scanner(System.in);
    		System.out.println("Donner le nombre des animaux :");
    		int nbAnim = sc.nextInt();
     
    		String []tab1 = new String [nbAnim];
    		for (int i = 0; i < tab1.length; i++) {
    	System.out.print("Saisir espece " + (i+1)+ " : ");
    	tab1[i] = sc.next();
    	System.out.println();
     
     int choix;
     
    		{
    		System.out.println(" Veuillez choisir : ");
    		System.out.println(" 1 - Afficher les animaux");
    		System.out.println(" 2 - Supprimer un animal");
    		System.out.println(" 3 - Quitter l'application");
    			Scanner scReponse = new Scanner(System.in);
    			choix=scReponse.nextInt();
     
    			switch (choix)
    			{
    			case 1: afficherLesAnimaux();
    			break;
    			case 2: SupprimerUnAnimal();
    			break;		
    			case 3: System.exit(0);
    			break;
    			default : System.out.println("Choisissez 1, 2 ou 3");
    			break;
    			}
    		}
     
    //Fonctions		
    String afficherLesAnimaux(String args) 
    {
     for (int i = 0; i < < tab1.length; i++) 
     {
      System.out.println("Animal "+ (i+1) +" = "+ tab1[i]);			
      return args; }
    }
    }

  7. #7
    Membre chevronné
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 175
    Par défaut
    Salut,

    tu as definis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String afficherLesAnimaux(String args)
    qui reçois un paramètre de type string, or dans ton case tu fait :

    Tu n'a pas définis de fonction afficherLesAnimaux ne prenant aucun paramétre c'est pour ça que tu as une erreur.

    Donc sois tu enlèves, dans la définition de ta fonction ton paramètre : et tu te retrouves avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String afficherLesAnimaux()
    Pour ce que tu fais ici ça semble suffisant : tu ne te sers pas de ton paramètre dans ta fonction.

    Sois tu passes un string lors de l'appel de ta fonction dans ton case.

    Sois, si vraiment tu as besoin de garder une fonction afficherLesAnimaux prenant un paramètre un string, et une version de la fonction ne prenant aucun parametre, il faut surcharger ta fonction :

    tu auras donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String afficherLesAnimaux(String param)
    {...}
    String afficherLesAnimaux()
    {...}
    de cette façon tu pourras faire :

    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    afficherLesAnimaux(un string)

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Par défaut
    Merci Maxusn pour cette explication. En réalité, les animaux se trouvent dans un tableau de String. Je souhaite afficher les strings présents dans ce tableau tab1. Et ca ne marche toujours pas...

  9. #9
    Membre chevronné
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 175
    Par défaut
    Normal que ca ne fonctionne pas : ta fonction d'affichage ne connait pas ton tableau, c'est ce tableau qu'il passer en paramètre et non un string.

    il faut que tu modifie le paramètre de ta fonction pour qu'elle reçoive un tableau de string et non un string, ensuite lorsque tu l'appel tu passes ton tableau en paramètre.

    ta fonction doit ressembler a ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String afficherLesAnimaux(String[] tab)
    {...}
    dans ta fonction tu utilise la variable tab comme ton tab1

    et dans ton case :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    afficherLesAnimaux(tab1)

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Par défaut
    OK, je n'ai plus d'erreur, mais lorsque je choisis "1 : afficherLesAnimaux" il y a une exception.

  11. #11
    Membre chevronné
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 175
    Par défaut
    tu as mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     for (int i = 0; i < < tab1.length; i++)
    tu as un < en trop.

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Par défaut
    Citation Envoyé par maxusn Voir le message
    tu as mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     for (int i = 0; i < < tab1.length; i++)
    tu as un < en trop.
    Je suis completement perdu !!
    Voici le code actuel :

    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
    public class Animal 
    {
     
    	public static void main(String[] args) {
     
    		Scanner sc = new Scanner(System.in);
    		System.out.println("Donner le nombre des animaux :");
    		int nbAnim = sc.nextInt();
     
    		String []tab1 = new String [nbAnim];
    		for (int i = 0; i < tab1.length; i++) {
    	System.out.print("Saisir espece " + (i+1)+ " : ");
    	tab1[i] = sc.next();
    	System.out.println();
     
     int choix;
     
    		{
    		System.out.println(" Veuillez choisir : ");
    		System.out.println(" 1 - Afficher les animaux");
    		System.out.println(" 2 - Supprimer un animal");
    		System.out.println(" 3 - Quitter l'application");
    			Scanner scReponse = new Scanner(System.in);
    			choix=scReponse.nextInt();
     
    			switch (choix)
    			{
    			case 1: afficherLesAnimaux();
    			break;
    			case 2: SupprimerUnAnimal();
    			break;		
    			case 3: System.exit(0);
    			break;
    			default : System.out.println("Choisissez 1, 2 ou 3");
    			break;
    			}
    		}
     
    //Fonctions		
    String afficherLesAnimaux(String[] tab) 
    {
     for (int i = 0; i <  tab1.length; i++) 
     {
      System.out.println("Animal "+ (i+1) +" = "+ tab1[i]);			
      return tab; }
    }
    }

  13. #13
    Membre chevronné
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 175
    Par défaut
    remplace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    case 1: afficherLesAnimaux();
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    case 1: afficherLesAnimaux(tab1);
    et dans ta fonction afficherLesAnimaux,
    ce n'est plus tab1 qu'il faut utiliser mais le tableau que tu recois en parametre de ta fonction : ici tab

  14. #14
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Citation Envoyé par kikica Voir le message
    En réalité, les animaux se trouvent dans un tableau de String.
    Ceux ne sont pas des pokémons.

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Ceux ne sont pas des pokémons.

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Par défaut
    Citation Envoyé par maxusn Voir le message
    remplace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    case 1: afficherLesAnimaux();
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    case 1: afficherLesAnimaux(tab1);
    et dans ta fonction afficherLesAnimaux,
    ce n'est plus tab1 qu'il faut utiliser mais le tableau que tu recois en parametre de ta fonction : ici tab
    Grrrr, il y a toujours quelque chose qui est souligné...
    Stp, si tu peux me faire un copier-coller du code qui marche chez toi, je n'arrive pas du tout !!!!!

  17. #17
    Membre chevronné
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 175
    Par défaut
    Fais un copier coller de l erreur et de la dernière version de ton code.

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Par défaut
    Citation Envoyé par maxusn Voir le message
    Fais un copier coller de l erreur et de la dernière version de ton code.
    J'ai tout essayé, ça ne marche pas...!

  19. #19
    Membre chevronné
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 175
    Par défaut
    poste le code que tu as en ce moment sur le forum ainsi que l'erreur qui te bloque.

  20. #20
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Par défaut
    YESSS !!! J'ai trouvé la solution, il y avait une accolade de trop et mot clé return tab n'était pas à sa place. Maintenant ce code marche bien. Je veux maintenant aller un peu plus loin : Lors d'enregistrement d'especes :
    Saisir espece 1 : xxxx
    Saisir la provenance d'espece 1 : xxxx
    Saisir son âge : xxxx

    Saisir espece 2... etc.
    Merci ;-)
    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
    import java.util.Scanner;
    public class Animal 
    {
     
    	public static void main(String[] args) {
     
    		Scanner sc = new Scanner(System.in);
    		System.out.println("Donner le nombre des animaux :");
    		int nbAnim = sc.nextInt();
     
    		String []tab1 = new String [nbAnim];
    		for (int i = 0; i < tab1.length; i++) 
    		{
    	System.out.print("Saisir espece " + (i+1)+ " : ");
    	tab1[i] = sc.next();
    	System.out.println();
    		}
     int choix;
     
    		{
    		System.out.println(" Veuillez choisir : ");
    		System.out.println(" 1 - Afficher les animaux");
    		System.out.println(" 2 - Supprimer un animal");
    		System.out.println(" 3 - Quitter l'application");
    			Scanner scReponse = new Scanner(System.in);
    			choix=scReponse.nextInt();
     
    			switch (choix)
    			{
    			case 1:	afficherLesAnimaux(tab1);
    			break;
    			//case 2: SupprimerUnAnimal(tab1);
    			//break;		
    			case 3: System.exit(0);
    			break;
    			default : System.out.println("Choisissez 1, 2 ou 3");
    			break;
    			}}}
     
     
    //Fonctions		
    static String[] afficherLesAnimaux(String[] tab) 
    {
     for (int i = 0; i <  tab.length; i++) 
     
    	 System.out.println("Animal "+ (i+1) +" = "+ tab[i]);			
     
     return tab;
    }
    }

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Tester si une String fait partie d'un tableau de String
    Par laloi dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 23/04/2005, 16h47
  2. [J2SE] tableau de string
    Par Jules82 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 17/03/2005, 14h35
  3. Ranger un tableau de String dans ma HashMap
    Par jeyce dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 26/08/2004, 22h41
  4. [Collections] Conversion de Vector en tableau de String
    Par java_math dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 06/06/2004, 12h55
  5. [Collections] Tableau de String
    Par gexti dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 02/06/2004, 15h42

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