For a program I am writing, I need to ask a user for an integer between 1 and 8. I’ve tried multiple (cleaner) ways of doing this but none of them worked, so I’m left with this:
int x = 0; while (x < 1 || x > 8) { System.out.print('Please enter integer (1-8): '); try { x = Integer.parseInt(inputScanner.next()); } catch(NumberFormatException e) { x = 0; } }
Where inputScanner is a Scanner. Surely there is a better way?
Scanner does regular expressions, right? Why not check if it matches ‘^[1-8]$’ first?