Exception in thread “main” java.lang.StringIndexOutOfBoundsException: String index out of range: 0

Je veux créer un petit programme en mode console qui convertir de Celsius - Fahrenheit et vice versa, c'est le code que j'ai essayé:

import java.util.Scanner;
public class CelsiusFahrenheit {
private static Scanner s;
public static void main(String[] args) {
s = new Scanner(System.in);
char reponse = 'N', choixConvert;
do
{
do
{
System.out.println("Choisie le mode de converstion : ");
System.out.println("1 - Converstisseur Celesuis - Fahrenheit");
System.out.println("2 - Converstisseur Fahrenheit - Celesuis");
do
{
System.out.print("Votre Choix: ");
choixConvert = s.next().charAt(0);
if(choixConvert != '1' && choixConvert != '2')
System.out.println("Mode inconnu, veuillez réitérer votre choix.");
}
while(choixConvert!='1' && choixConvert!='2');
System.out.print("Température à convertir : ");
double temp = s.nextDouble();
System.out.print("Resultat est: " + ConvertCelesuisFahrenheit(choixConvert,temp));
System.out.println("\nSouhaitez-vous convertir une autre température ? (O/N)");
reponse = Character.toUpperCase(s.nextLine().charAt(0));
}while(reponse != 'O' && reponse != 'N');
}while(reponse == 'O');
System.out.println("Au revoir !");
}
private static Double ConvertCelesuisFahrenheit(int choixConvert,double temp )
{
if(choixConvert == 1)
return (9/5)*temp+32;
else
return (temp-32)*(5/9);
}
}

mais j'ai eu un problème que la fonction ConvertCelesuisFahrenheit() retourne toujours 0.0 et d'après ce qu'il me donne cette erreur:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException:
String index out of range: 0 à java.lang.Chaîne de caractères.charAt(Inconnu
Source) à CelsiusFahrenheit.principale(CelsiusFahrenheit.java:33)

C'est la sortie:

Choisie le mode de converstion : 
1 - Converstisseur Celesuis - Fahrenheit
2 - Converstisseur Fahrenheit - Celesuis
Votre Choix: 2
Température à convertir : 33
Resultat est: 0.0
Souhaitez-vous convertir une autre température ? (O/N)
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at CelsiusFahrenheit.main(CelsiusFahrenheit.java:33)
  • Je pense que ce serait beaucoup plus facile de répondre à votre question si ça n'était pas... bordélique. Vous avez donc de nombreuses, tandis que les boucles, honnêtement, tu pourrais probablement le faire dans une boucle. Si vous pouviez juste nous montrer la ligne 33, que ce serait mieux.
  • c'est la ligne 33: reponse = Character.toUpperCase(s.nextLine().charAt(0));