Привет Я только начал изучать Java, я пытаюсь перевести градусы Цельсия в градусы Фаренгейта и наоборот, но мой код ниже выдает следующее исключение:Java Цельсия в Фаренгейта алгоритм Броски StringIndexOutOfBoundsException
Exception in thread "main" java.lang.StringIndexOutOfBoundsException:
String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at hello.main(hello.java:33)
Это моя программа:
public class hello {
public static void main(String[] args) {
System.out.println("CONVERTISSEUR DEGRES CELSIUS ET DEGRES FAHRENHEIT");
System.out.println("-------------------------------------------------");
Scanner sc = new Scanner(System.in);
byte a = sc.nextByte();
char test = 'O';
while(test == 'O') {
switch(a) {
case 1: {
System.out.println("Température a convertir :");
float temp=sc.nextFloat();
float nvtemp=temp * 9/5 + 32;
System.out.println(temp + " °C correspond a : " + nvtemp + " °F");
}break;
case 2: {
System.out.println("Température a convertir :");
float temp = sc.nextFloat();
float nvtemp = (temp - 32) * 5/9;
System.out.println(temp + " °F correspond a : " + nvtemp + " °C");
}break;
default:
System.out.println("Stp entrer 1 ou 2 !!");
}
test = ' ';
while(test != 'O' && test != 'N') {
System.out.println("Souhaitez-vous convertir une autre température ?(O/N)");
test = sc.nextLine().charAt(0);
}
}
System.out.println("Goodbye !!");
}
}
Может кто-нибудь помочь мне понять, почему мой код бросает StringIndexOutOfBoundsException
?
Первый вызов 'sc.nextLine()' возвращает пустую строку (для 'случае 1' и' случае 2') и вызова '.charAt (0) 'на пустую строку вызывает это исключение. Проверьте упомянутый дублированный вопрос, чтобы узнать, почему он возвращает пустую строку. – Tom