如何确定String的内容是Integer,Boolean还是Double?

时间:2015-12-26 01:55:51

标签: java properties

我正在读取我的java项目中的.properties文件,我注意到每一行都被读为String(如果我使用.get().getProperty(),则无关紧要)。所以,我想知道如何根据String的内容确定该值是boolean还是Integerdouble还是String

"asavvvav" --> String
"12345678" --> Integer
"false"    --> Boolean

1 个答案:

答案 0 :(得分:3)

您可以使用正则表达式:

String booleanRegex = false|true;
String numberRegex = \\d+;

if(input.matches(booleanRegex)) {

} else if(input.matches(numberRegex)) {

} else {
   //is String
}

或者您可以尝试解析并捕获异常:

boolean isNumber = false;
try {
    Integer.parseInt(input);
    isNumber = true;
} catch(NumberFormatException e) {
    e.printStackTrace();
}

检查它是否为枚举值:

try {
    Enum.valueOf(YourEnumType.class, "VALUE");
} catch(IllegalStateException e) {
    e.printStackTrace();
    //was not enum
}