package top.imwork.commons.core.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Copyright (C), 2015-2022
 * FileName: NumberUtils
 * Author<作者姓名>:   stars
 * CreateTime<创建时间>:   2022/4/18 9:03
 * UpdateTime<修改时间>:   2022/4/18 9:03
 * Description〈功能简述〉: 数字处理工具类
 * History<历史描述>:
 * Since<版本号>: 1.0.0
 */
public class NumberUtils {
    private NumberUtils() {
        // 私有构造方法
        throw new IllegalStateException("Utility class");
    }

    public static final Pattern NUMBER_PATTERN = Pattern.compile("^[-+]?\\d+(\\.?\\d+)?$");

    /**
     * 判断字符串是否是正整数
     *
     * @param str 要验证的字符串
     * @return 验证结果
     */
    public static boolean isNumeric(String str) {
        if (StringUtils.isEmpty(str)) {
            return false;
        }
        Pattern pattern = Pattern.compile("[0-9]*");
        Matcher isNum = pattern.matcher(str);

        return isNum.matches();
    }

    /**
     * 判断字符串是否是数值型字符串
     *
     * @param str 要验证的字符串
     * @return 验证结果
     */
    public static boolean isNumber(String str) {
        if (StringUtils.isEmpty(str)) {
            return false;
        }
        Matcher matcher = NUMBER_PATTERN.matcher(str);
        return matcher.find();
    }
}