|--需求说明
获取用户输入,如果用户输入的不是一个整数,则要求用户继续输入,如果输入的是整数,就结束程序
|--实现思路
1、采用try--catch+Interge.parseInt的方式,如果输入的不是整数就抛出异常
2、采用Scanner中的 hasnextInt()方法
3、将字符串拆成单字,逐一判断是否为int
4、采用正则表达式判断
|--代码内容
1 public class Juge1 {
2 public static void main(String[] args) {
3 Scanner scanner = new Scanner(System.in);
4 boolean flag = true;
5 do {
6 System.out.println("请输入一个数字:");
7 String string = scanner.next();
8 try{
9 Integer.parseInt(string);
10 flag = false;
11 }catch (Exception e){
12 System.out.println("你输入的不是一个整数");
13 }
14 }while (flag);
15 System.out.println("嗯,你输入的是整数,结束输入");
16 }
17 }
try-catch+Interge.parseInt
1 public class Judge {
2 public static void main(String[] args) {
3 Scanner scanner = new Scanner(System.in);
4 System.out.println("请输入一个数字");
5 while (!scanner.hasNextInt()){
6 System.out.println("你输入的不是一个数字,请输入一个数字");
7 String string = scanner.next();
8 }
9 int a = scanner.nextInt();
10 System.out.println("嗯,你输入的是一个数字,输入结束");
11 }
12 }
采用Scanner的hasnextInt()方法
1 public class PanDuan1 {
2 public static void main(String[] args) {
3 Scanner scanner = new Scanner(System.in);
4 boolean flag = true;
5 do {
6 System.out.println("请输入一个整数");
7 String a = scanner.next();
8 if (isNumeric(a)) {
9 flag = false;
10 }
11 } while (flag);
12 System.out.println("嗯,你输入的是一个整数");
13 }
14
15 public static boolean isNumeric(String str) {
16 for (int i = str.length(); --i >= 0; ) {
17 if (!Character.isDigit(str.charAt(i))) {
18 return false;
19 }
20 }
21 return true;
22 }
23 }
将字符串拆成单个字符,逐一判断是否是整数
|--运行结果