Bonjour Saisi au clavier JAVA

Fermé
Peteers Kents - 27 mars 2011 à 19:39
 peteers kents - 29 mars 2011 à 18:50
Bonjour,


Je voudrais savoir est ce quelqu'un pourrait m'aider en JAVA

Je voudrais completer un tableau d'entier.


Voici ce que je voudrais obtenir comme interface sur terminal et pouvoir gérer les erreurs mismasctexception etc...


pour un tableau de 5 elements
_______________________
Veuillez rentre 5 chiffre separément ou ensemble : 2 E 3 4 RT
Veuillez encore ecrire 2 chiffres : 23

voici les chifres encodé : 2 3 4 2 3

_____________________


J'ai reussi certains truc mais je suis bloqué au niveau pour separer les chiffres et si il en manque des chiffres je n'arrive pas le demander correctement etc....
Il y a 2 minutes
- Il reste 4 jours pour répondre.

Détails supplémentaires

voici le code que j'avais écrit


__________________

import java.util.Scanner;

public class ClavierLecture {
public static void main(String[] args) {
Scanner clavier = new Scanner(System.in);
int [] tab = new int[5];
int i=0;
while(i < tab.length){
System.out.print("Veuillez compléter :");
while(!clavier.hasNext("[0-9]+")){

clavier.next();
}
int nblu= clavier.nextInt();
if(nblu>0 && nblu<10){
tab[i]=nblu;
i++;
//System.out.println(nblu);
}

}
for(int j =0; j<tab.length-1; j++){
System.out.print(" "+tab[i]);

}
}
A voir également:

4 réponses

Utilisateur anonyme
28 mars 2011 à 10:21
Salut,

Ce code (ta classe modifiée) permet la saisie des 5 entiers un par un avec contrôle de la validité de la saisie (InputMismatchException):

   import java.util.Scanner;
   import java.util.InputMismatchException;
   import javax.swing.JOptionPane; 

   public class ClavierLecture
   {
      private static JOptionPane erreur;
      // dans cet exemple seule erreur est utilisée
    
      public static void main(String[] args)
      { 
         Scanner clavier = new Scanner(System.in); 
         int [] tab = new int[5];
         int nblu = 0;
         boolean bErreur = false;
         System.out.println("\nVeuillez saisir un premier entier svp.");
         
         for(int i = 0; i < tab.length; i++)
         {
            while(bErreur)
            { 
               bErreur = false;
            }
            
            Scanner sc = new Scanner(System.in);
            try
            {
               nblu = sc.nextInt();
               tab[i] = nblu;
            }
               catch (InputMismatchException im1e)
               {
                  bErreur = true;
                  i--;
                  erreur.showMessageDialog(null,
                     "Saisie n° " + (i + 2) + " non numérique ou valeur trop grande\n"
                     + "ou trop petite !!!\n"
                     + "Vous devez saisir une valeur correcte de:\n"
                     + Integer.MIN_VALUE + " à\n"
                     + " " + Integer.MAX_VALUE + ".",
                     "Erreur", JOptionPane.ERROR_MESSAGE);
               }
            System.out.println("\nVeuillez saisir la valeur num. " + (i + 2) + " svp.");
         }
        
         for(int i = 0; i <tab.length; i++)
         { 
            System.out.println("Résultat: " + tab[i]); 
         } 
      }
   }

Cordialement,

Dan
0
Peteers kents
28 mars 2011 à 10:58
Bonjour, Et si je voudrais qu'il rentre les 5 valeurs directement les valeurs avec un sépareteur/délimiteur ou ensemble?
0
Utilisateur anonyme
28 mars 2011 à 13:57
Re,

   import java.util.Scanner;
   import javax.swing.JOptionPane;
   import java.util.regex.Pattern;
   import java.util.regex.Matcher; 

   public class ClavierLecture2
   {
      private static JOptionPane erreur;
      private static String[] tabS;
      private static int[] tabI = new int[5];
      private static String concat = "";
    
      public static void main(String[] args)
      { 
         Scanner clavier = new Scanner(System.in);
         String nblu = "";
         boolean encore = true;
         System.out.println("\nVeuillez saisir un ou plusieurs entiers\n"
            + "(séparés par un espace si plusieurs).");
         
         Scanner sc = new Scanner(System.in);
         while(encore)
         { 
            encore = false;
         
            nblu = sc.nextLine();
            System.out.println("nblu: " + "\"" + nblu + "\"");
            concat+= nblu + " ";
            System.out.println("concat: " + "\"" + concat + "\"");
            Pattern pattern = Pattern.compile(" +"); // Le séparateur est 1 ou plusieurs espaces 
            tabS = pattern.split(concat);
            if(tabS.length <5)
            {
               encore = true;
               System.out.println("\nVeuillez saisir la suite.");
            }
         }
         
         System.out.println("\nLe tableau String tabS:");
         for(int i = 0; i < tabS.length; i++)
            System.out.println(i + "  " + "\"" + tabS[i] + "\""); 
            
      		 
         for(int i = 0; i < tabS.length; i++)
            tabI[i] = Integer.parseInt(tabS[i]);
        
         System.out.println("\nLe tableau int tabI:");
         for(int i = 0; i < tabI.length; i++)
            System.out.println(i + "  " + tabI[i]);
      }
   }

Il te reste à ajouter le contrôle des valeurs saisies.
Cette fois l'exception sera NumberFormatException...

Dan
0
Peteers kents
29 mars 2011 à 16:50
Merci

dis moi est ce que je ne pourrais pas avoir ton email? si ca te derange pas voici mon email


merci encore une fois pour ton aide , je crois que je peux m'en sortir ( fin je l'espere)
0
peteers kents
29 mars 2011 à 18:50
peteerskents@yahoo.com

j'ai oublié mon email :)
0