我正在读取我的java项目中的.properties文件,我注意到每一行都被读为String(如果我使用.get()
或.getProperty()
,则无关紧要)。所以,我想知道如何根据String
的内容确定该值是boolean
还是Integer
或double
还是String
"asavvvav" --> String
"12345678" --> Integer
"false" --> Boolean
答案 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
}