import static java.lang.System.*;
import static java.lang.Math.*;
import java.io.*;     // Inclusion du paquet d'E/S système
import  java.util.*;     /* pour inclure 'Scanner' et 'Locale' */
/**  Classe 'vscanner' :  VERIF. de l'emploi des classes  'Scanner' (JDK 5.0)  et de 'Locale' - Test de 'floor', 'ceil' et 'rint' ...
  * @author   (c) ~/2A env.
  * @version  1.3    11.09.2009
  * @since     0.9    13.03.2005
  * @see        test_scan  
  */
public class vscanner  {
 /**   jo: champ public de classe <===> alias de 'System.out' pour JDK 1.4 ou antérieure ...
   *       Il n'a plus de raison d'être avec "import static java.lang.System.*;" sous JDK 5.0      */
	static PrintWriter jo= new PrintWriter(System.out, true);

/**  Méthode principale publique 'main(...)'.
  * Elle utilise la classe 'es' pour accéder  à la méthode de classe:
  *    attente() - affichage de l'heure courante,
  * @param args Tableau de chaînes pour ligne de commande éventuelle
  */
	public static void main(String args[]) {

        String txt= new String(); // <==>  String txt;

        txt  ="VERIF. de Scanner et des importations de classe ('static') sous Java 5 ...\n";
        txt +="------ A  ANALYSER et TESTER 'useLocale' !  (c)~/2A env. - MAJ: 2009.09.11  11:23\n";
        jo.println(txt);

        Scanner  input = new  Scanner(System.in);
		// input.useLocale(Locale.FRENCH);  	// pour des réels avec  des ',' au lieu des '.'   !
		input.useLocale(Locale.US); // pour des réels avec  des '.' au lieu des ','   !
		// input.reset();   // pour revenir au  cas par défaut ...
		
        out.println("\nA ESSAYER en tapant un 'float'  (Ex.: 3.14f  ou 3.14 ou  3,14  ...) :  ");
        float  unFloat  = input.nextFloat();
        out.println("'unFloat'  lu  = "+ unFloat);

        out.println("\nA ESSAYER en tapant un 'double' (Ex.: 2  ou 2.0 ou  2d  ou  2,0  ...) :  ");
        double  unDouble  = input.nextDouble();
        out.println("'unDouble'  lu  = "+ unDouble);

        out.println("\n\nTaper  une phrase : ");
        String s = input.next();
		// String s = input.nextLine();
        out.println("'phrase'  lue  = "+ s);

        out.println("\nTaper  un 'boolean' (i.e.  true / false) :  ");
        boolean  unBool  = input.nextBoolean();
        out.println("'unBool'   lu  = "+ unBool);
		
        out.println("\nTaper  un 'byte':  ");
        byte  unOctet  = input.nextByte();
        out.println("'unOctet'   lu  = "+ unOctet);
  
        out.println("\nTaper  un 'short':  ");
        short  eCourt  = input.nextShort();
        out.println("'eCourt'  lu  = "+ eCourt);

        out.println("\nTaper  un 'int':  ");
        int  entier  = input.nextInt();
        out.println("'entier'  lu  = "+  entier);

        out.println("\nTaper  un 'long':  ");
        long  eLong = input.nextLong();
        out.println("'eLong'  lu  = "+  eLong);

        out.println("\nTaper  un mot :  ");
        String mot = input.next();
        out.println("'mot'  lu  = "+ mot);

		float xn = -10 - 2f/3f;  // <==> xn = -10.66666;
        float xp =  10 + 1f/3f;  // <==> xp = +10.33333;
        out.printf("x = %10.5f \t (int)x= %d \t (float)floor(x)= %5.1f \t (float)ceil(x)= %5.1f \t (float)rint(x)= %6.2f\n", xn, (int)xn, (float) floor(xn), (float) ceil(xn), (float)rint(xn));
        out.printf("x = %10.5f \t (int)x= %d \t (float)floor(x)= %5.1f \t (float)ceil(x)= %5.1f \t (float)rint(x)= %6.2f\n", xp, (int)xp, (float) floor(xp), (float) ceil(xp), (float)rint(xp));

        es.attente();  
  }
}
