|--需求说明
获取用户输入,如果用户输入的不是一个整数,则要求用户继续输入,如果输入的是整数,就结束程序
|--实现思路
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 }
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 }
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 }
|--运行结果