Allora, parseInt di Integer lancia un'eccezione se non riesce a parsare un valore che sia un intero (da una stringa), potresti sfruttare questa situazione per avvertire dell'errore di immissione e richiedere una nuova immissione.
codice:BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int numero; boolean flag = false; System.out.print("Immetti intero: "); while (!flag) { try { Integer integer = Integer.parseInt(in.readLine()); numero = integer.intValue(); flag = true; } catch (Exception e) { System.out.print("Dato non valido\nImmetti intero: "); flag = false; } }