public static double convertWeight(String value, String value2) {
double lbs = 0;
double ounces = 0;
if (!value.equals("")) {
lbs = Double.parseDouble(value);
}
if (!value2.equals("")) {
ounces = Double.parseDouble(value2) * 0.062500;
}
double grams = (lbs + ounces) / 0.0022046;
return grams;
}
我有这段代码,有时我会得到磅或盎司值empty
。上面的代码工作正常,但我编写代码的方式并不开心。谁能告诉我一个更好的替代方式。
我必须convertWeight
。所以从我的服务中我有时会得到值或有时只是空字符串。如果它是空的我确保我传递lbs或盎司“Zero
”converWeight(value1, value2);
答案 0 :(得分:6)
Java 6实现了一个新的String方法isEmpty()。只要您运行6或更高版本,就可以使用此方法重写代码。它更具可读性。
try {
if (!isEmpty(value)) {
lbs = Double.parseDouble(value);
}
if (!isEmpty(value2)) {
ounces = Double.parseDouble(value2) * 0.062500;
}
} catch (NumberFormatException nfe) {
//Do some notification
System.err.println("Invalid input.");
}
作为补充建议..您可能希望将此代码包装在try / catch块中。如果不这样做,如果程序试图解析除任一值的有效double之外的任何内容,则程序将因未捕获的异常而崩溃。
答案 1 :(得分:1)
我通常这样做
if (value != null && !value.trim().isEmpty())
Null
检查以避免NPE trim()
去除任何无关的空格isEmpty()
,其长度为> 0 答案 2 :(得分:1)
我建议使用Apache StringUtils.isEmpty(),. isNotEmpty(),. isHlank()和.isNotBlank()。保持Apache Commons对许多Java怪癖很有用,而不仅仅是字符串。
答案 3 :(得分:0)
使用String.isEmpty
方法
public static double convertWeight(String value, String value2) {
double lbs = (value.isEmpty())?0:Double.parseDouble(value);
double ounces = (value2.isEmpty())?0:Double.parseDouble(value2) * 0.062500;
return (lbs + ounces) / 0.0022046;
}