Во-первых, вам придется использовать метод next () из сканера, так как nextInt () вернет исключение, если следующий токен содержит нецифровые символы. Это будет читать токен как строку. Затем вы можете избавиться от нецифровых символов, например, создав пустую строку (по причинам производительности StringBuilder может быть лучше, но это усложняет ее), просматривая исходную строку и используя уже упомянутый метод isDigit () определить, является ли символ цифрой. Если это так, добавьте его в новую строку. Если у вас есть строка, содержащая только цифры, используйте метод Integer.parseInt (string), чтобы получить целочисленное значение.
Я не совсем уверен, почему вы каждый раз инициализируете новый сканер, я думаю, что вы должны иметь возможность использовать первый в своей программе.