Java

Estou a tentar fazer um programa para a escola em que é pedida a conversão de uma temperatura de uma escala para outra e usei scanners para pedir a escala da temperatura dada e da que pretende receber e para pedir o valor da temperatura.
Ao correr o programa depois de inserir as escalas e o valor da temperatura dá me este erro:
Exception in thread “main” java.lang.NumberFormatException: For input string: “K”
at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
at java.base/jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.base/java.lang.Double.parseDouble(Double.java:549)
at Exercicio3.main(Exercicio3.java:16)

Não coloques imagens quando quiseres mostrar código. Assim não dá para fazer copy/paste.

Em relação ao teu problema, deves criar apenas uma instância de Scanner e ler dela tudo o que precisas.

Scanner entrada = new Scanner(System.in);
System.out.println("Introduza a escala de temperatura (K/C/F): ");
// Considera dar nomes mais intuitivos a variáveis. x, y, z não ajudam a perceber o código
String escalaOrigem = entrada.nextLine(); // usa sempre nextLine para ler do teclado
System.out.println("Escala para que pretende converter: ");
String escalaDestino = entrada.nextLine();
System.out.println("Valor de temperatura: ");
String temperatura = entrada.nextLine();
1 curtida

Muito obrigado e peço desculpa por não ter facilitado a ajuda. É a primeira vez que uso o website e pergunto algo. Da próxima vez copiarei e colarei o código para que dê para fazer copy paste.
Mudei os nomes das variáveis como disse e o código já funciona. Obrigado!

No meu Github tenho um exemplo.

1 curtida