Estou com uma dúvida no código abaixo, fiz o tratamento quando o usuário digita uma letra, até ai tudo bem…mais quando o usuário digita uma letra e depois uma delete ele da outro erro, ai eu tratei ele tb, só que quando o usuário digita uma letra e depois o delete ele da erro no idade = Integer.parseInt(letra);
se eu tratar esse tb, ele vai dar erro no outro pois eu preciso que o usúario digite um número para a idade…como resolver esse problema?
package erro;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Principal {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int idade = 0;
try {
System.out.println("Digite sua idade");
idade = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("Você digitou uma letra!");
System.out.println("Digite sua idade novmente!");
String letra = sc.nextLine();
while(!letra.substring(0).matches("[1-9]*")) {
System.out.println("Digite só números!");
letra = sc.nextLine();
}
idade = Integer.parseInt(letra);
} catch (NumberFormatException e) {
System.out.println("Você digitou uma letra!");
System.out.println("Digite sua idade novmente!");
String letra = sc.nextLine();
while(!letra.substring(0).matches("[1-9]*")) {
System.out.println("Digite só números!");
letra = sc.nextLine();
}
idade = Integer.parseInt(letra);
}
System.out.println("Sua idade é: " + idade);
}
}