我有一个ResultSet,我迭代,我创建一个像view(html)的报告.问题是有些列返回Long值(作为SQL中数学函数的结果).
有没有一种简单的方法可以通过DataType识别这个值?
让我们说我想做这样的事情
String x = rs.getString(1);
if(MyUtilClass.isOfTypeLong(x)){
//implement my bussiness logig
}
Run Code Online (Sandbox Code Playgroud)
我看过这篇文章你如何确定字符串中包含的数据类型?.如果现在没有更好的东西,我将继续使用regEx解决方案.
小智 5
你为什么不尝试Long.valueOf(String)先解析它作为一个Long,否则要求解析它作为一个Double有Double.valueOf(String)?
NumberFormatException如果无法解析字符串,则抛出一个.
public static void main(String[] args) throws Exception {
final String s1 = "1234567890";
System.out.println(isParsableAsLong(s1)); // true
System.out.println(isParsableAsDouble(s1)); // true
final String s2 = "1234.56789";
System.out.println(isParsableAsLong(s2)); // false
System.out.println(isParsableAsDouble(s2)); // true
}
private static boolean isParsableAsLong(final String s) {
try {
Long.valueOf(s);
return true;
} catch (NumberFormatException numberFormatException) {
return false;
}
}
private static boolean isParsableAsDouble(final String s) {
try {
Double.valueOf(s);
return true;
} catch (NumberFormatException numberFormatException) {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)