猿问

判断字符串内容的类型

需求是这样的,有一个字符串用逗号分隔str="123,2.36,abc"

现在用String[] strList = str.trim().split(",");得到字符串数组

要判断被分隔的字符串数组中每个元素的类型,加入一个list中,list不指定类型

目的就是为了让list中有不同类型的元素

除了写一个多类型的判断函数,遍历字符数组去分别判断,还有什么好的方法?


幕布斯7119047
浏览 454回答 2
2回答

长风秋雁

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

MYYA

假设数据类型仅限于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;}以上代码手敲,有可能写错。
随时随地看视频慕课网APP

相关分类

Java
我要回答