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

avec Java Discussion :

récupérer un char au clavier


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 36
    Points : 28
    Points
    28
    Par défaut récupérer un char au clavier
    Bonsoir,
    J'ai fait un programme tout simple pour convertir des francs en euros et vice versa en demandant à l'utilisateur le type de conversion , la somme et s'il souhaite continuer: j'ai une erreur au moment de la saisie :

    Conversion Frs-Euros, tapez 1, Conversion Euros-Frs, tapez 2 : 1
    Saisir la somme : 111
    somme saisie : 111.0
    Somme en Euros : 16.921840913352554
    Autre conversion ( O/N) ?
    Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
    at java.lang.String.charAt(String.java:686)
    at TestConversion.main(TestConversion.java:40)
    Merci pour vos suggestions

    voici mon code :
    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
    import java.util.Scanner;
     
    public class Conversion {
     
    	Scanner sc=new Scanner(System.in);
     
    	private double Somme;
    	static double indice ;
     
    	Conversion () {		// constructeur
    		indice = 6.55957 ;
    	}
    	public double getSomme (){
    		return Somme;
    	}
    	public void setSomme (double saisie) {
    		Somme = saisie;	
    	}
     
    	public double ConversionEuros_Frs () {
    		return Somme/indice;
     
    	}
    	public double ConversionFrs_euros () {
    		return Somme*indice;
     
    	}
    	public void AfficherEuros () {
    		System.out.println ("Somme en Euros : " + this.ConversionFrs_euros() );
    	}
    	public void AfficherFrancs () {
    		System.out.println ("Somme en Euros : " + this.ConversionEuros_Frs () );
    	}
    	public String toString () {
    		return "somme saisie : " + this.Somme ;
    	}		
    }
    et le main

    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
    import java.util.Scanner;
     
    public class TestConversion {
     
    	public static void main(String[] args) {
    		Scanner sc=new Scanner(System.in);
     
    		Conversion A1 = new Conversion ();
    		int reponse;
    		char encore;
    		double somme ;
    		do {
    			do {
    				System.out.print("Conversion Frs-Euros, tapez 1, Conversion Euros-Frs, tapez 2  : ");
    				reponse = sc.nextInt();
    				if ( reponse != 1 && reponse != 2)
    					System.out.print("Choix incorrect, recommencez !");			
    			}// fin du 2ème do
    			while (reponse != 1 && reponse != 2);
     
    			System.out.print("Saisir la somme : ");	
     
    			somme= sc.nextDouble();
    			A1.setSomme(somme);
    			System.out.print(A1 + "\n");	//vérifier saisie	
     
    			if ( reponse == 1 ) {
    				A1.ConversionFrs_euros();
    				A1.AfficherFrancs();
    			}
    			else {
    				A1.ConversionEuros_Frs();
    				A1.AfficherEuros();
    			}
    			System.out.println("Autre conversion ( O/N) ? ");
    			encore = sc.nextLine().charAt(0);
     
    		}// fin du 1er do
    		while (encore == 'O'); 
    		System.out.print("Fin");
     
    	}
     
    }

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 133
    Points : 109
    Points
    109
    Par défaut
    Tu peux pas limiter la saisie à un seul caractère (il me semble), mais pour avoir un char, tu dois choper une chaine de caractère, et le convertir en Character, ou faire un charAt(0)

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 312
    Points : 533
    Points
    533
    Par défaut
    Bonjour,

    Remplace sc.nextLine() par sc.next()

    Si tu regarde la javaDoc tu verras que nextLine ne se contente pas de renvoyer la dernière ligne....

Discussions similaires

  1. Récupérer un évenement du clavier
    Par GTJuanpablo dans le forum C#
    Réponses: 18
    Dernier message: 22/03/2007, 12h49
  2. [Win32] Récupérer un appui touche clavier
    Par elsargento dans le forum MFC
    Réponses: 19
    Dernier message: 06/05/2006, 11h05
  3. [API windows] Récupérer proprement les évènements clavier...
    Par heider dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 20/03/2006, 13h05
  4. Réponses: 2
    Dernier message: 01/12/2005, 12h24
  5. Récupérer la touche du clavier pressée
    Par deubal dans le forum Débuter
    Réponses: 2
    Dernier message: 25/10/2005, 16h58

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