登录

java - 判断字符串内容的类型

# Java
迷茫迷茫2146 天前465 次浏览

全部回复(2) 我要回复

  • PHPzhong

    PHPzhong2017-04-18 10:06:51

    目前我能想到的就是正则判断了

    回复
    0
  • 阿神

    阿神2017-04-18 10:06:51

    假设数据类型仅限于8种基本类型+String。
    其中数值类型分为整数和浮点数;
    布尔值和字符型比较好判断;
    整数的正则表达式:^-?[1-9]\d*$
    浮点数的正则表达式:^[-]?[1-9]\d*\.\d*|-0\.\d*[1-9]\d*$
    其中0值要另外判断,这个比较简单,自己写。

    public static final String CHAR_PATTERN = "[^0-9]";
    public static final String INT_PATTERN = "^-?[1-9]\d*$";
    public static final String DOUBLE_PATTERN = "^[-]?[1-9]\d*\.\d*|-0\.\d*[1-9]\d*$";
    
    public static Object convert(String item) {
        // 忽略所有空字符串或全是空格的字符串
        if (!StringUtils.hasText(item)) {
            return null;
        }
        item = item.trim();
        if ("true".equalsIgnoreCase(item) || "false".equalsIgnoreCase(item)) {
            return Boolean.valueOf(item);
        }
        if (item.matches(CHAR_PATTERN)) {
            return Character.toString(item);
        }
        if (item.matches(INT_PATTERN)) {
            return Integer.valueOf(item);
        }
        if (item.matches(DOUBLE_PATTERN)) {
            return Double.valueOf(item);
        }
        return item;
    }

    以上代码手敲,有可能写错。

    回复
    0
  • 取消回复发送