Boas colegas. Estou a tentar reforçar os meus conhecimentos em java então decide pegar um livro e estuda-lo… Num dos exercícios de fatorial ao executar o codigo dá o seguinte erro:
Exception in thread "main" java.lang.NumberFormatException: For input string: "" at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.base/java.lang.Integer.parseInt(Integer.java:662) at java.base/java.lang.Integer.parseInt(Integer.java:770) at cap5exercices.example1.Fatorial.main(Fatorial.java:19)
A linha na qual aponta para o erro é esta:
int n = Integer.valueOf(s).intValue(); //variavel ira converter a valor na posicao 0 da string s
O código inteiro é:
public static void main(String[] args) throws IOException {
String s = "";
int k; //variavel de controlo
char c; //armazenara o numero do teclado
long total = 1;
//asking for a number
System.out.println("Qual e o numero?");
while ((c = (char) System.in.read()) != 10) { // onde 10 igual a enter considerar caracteres na posicao 0
s += c;
s = s.substring(0, s.length()-1); //elimina o lixo no final da string
int n = Integer.valueOf(s).intValue(); //variavel ira converter a valor na posicao 0 da string s
for (k = n; k>=1; k--) { //achar o fatorial
total *= k; //total ira multiplicar com os valores que a variavel de controlo ira obtendo
System.out.println(n + "! = " + total); //exibicao do resultado na console
}
}
}
Revisei o código e não vi diferença alguma, e no livro não aborda sobre o erro…
