Java 多种方法判断输入的字符串是否是数字

|--需求说明

获取用户输入,如果用户输入的不是一个整数,则要求用户继续输入,如果输入的是整数,就结束程序

|--实现思路

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 }
将字符串拆成单个字符,逐一判断是否是整数

|--运行结果

猜你喜欢

转载自www.cnblogs.com/twuxian/p/11242980.html