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 :
Citation:
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:
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:
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");
}
} |