0
点赞
收藏
分享

微信扫一扫

java判断获取到的数据是不是一个数值

一:概述

在java的学习中,经常会遇到需要判断用户输入的数据是否为数值的问题。这里将去介绍几种方法去实现这个需求。

二:具体说明

<1>使用try...catch模块去实现

一种常见的方法是尝试将字符串转换为数值类型,如果转换成功则说明该字符串是数值,否则会抛出异常。我们可以利用这一特性来判断字符串是否为数值。

  Scanner sc = new Scanner(System.in);
        System.out.println("请输入您需要输入的数值");
        String input1 = sc.next();
        String input2 = sc.next();
        System.out.println(input1 + " 是否为数值: " + isNumeric(input1)); // 输出 true
        System.out.println(input2 + " 是否为数值: " + isNumeric(input2)); // 输出 false


    }

    /**
     * @param str 用户输入的字符串
     * @return true false
     */
    public static boolean isNumeric(String str) {
        try {
            Double.parseDouble(str);
            return true;
        } catch (NumberFormatException e) {
            return false;
        }
    }

java判断获取到的数据是不是一个数值_System

<2>使用正则表达式去判断

使用正则表达式来判断获取到的数据是否为数值。通过匹配数值的正则表达式来验证数据是否为数值。

public static void main(String[] args) {

        String data1 = "12345";
        String data2 = "abcd";

        System.out.println(data1 + " 是数值吗? " + isNumeric(data1));
        System.out.println(data2 + " 是数值吗? " + isNumeric(data2));


    }

    /**
     *
     * @param str 用户输入的数据
     * @return 是否为数值
     */
    public static boolean isNumeric(String str) {
        return str.matches("-?\\d+(\\.\\d+)?");
    }

java判断获取到的数据是不是一个数值_正则表达式_02

正则表达式中里面的详细介绍

  1. -?: 这个部分匹配一个负号(-)或一个空字符串("")如果数字是正数。
  2. \d+: 这个部分匹配一个或多个数字(\d)。
  3. (\.\d+)?: 这个部分匹配一个可选的小数部分。它由一个点(.)和一个或多个数字(\d)组成。如果小数部分不存在,那么整个模式将匹配数字的整数部分。
  4. -?\\d+(\\.\\d+)?来匹配数值,其中-?表示可选的负号,\\d+表示一位或多位数字,(\\.\\d+)?表示可选的小数部分。

<3>综合案例

验证用户输入的年龄是否为数值,并且年龄为正整数,不为负数。

 public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入您的年龄:");
        String ageInput = scanner.nextLine();

        if (isNumeric(ageInput) && Double.parseDouble(ageInput) > 0) {
            int age = Integer.parseInt(ageInput);
            System.out.println("您输入的年龄是:" + age);
        } else {
            System.out.println("请输入有效的年龄!");
        }

        scanner.close();


    }

    public static boolean isNumeric(String str) {
        return str.matches("-?\\d+");
    }

java判断获取到的数据是不是一个数值_System_03


java判断获取到的数据是不是一个数值_System_04



举报

相关推荐

0 条评论