-1
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。所以从我的服务中,我有时会得到值,有时只是空字符串。如果它是空的,我确保我通过磅或盎司“ ZeroconverWeight(value1, value2);

4

4 回答 4

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 块中。如果你不这样做,如果你的程序试图解析任何一个值的有效双精度以外的任何东西,你的程序将因未捕获的异常而崩溃。

于 2013-05-31T20:37:37.797 回答
1

我通常这样做

if (value != null && !value.trim().isEmpty())
  • Null检查以避免 NPE
  • 后跟 atrim()去除任何多余的空格
  • 随后isEmpty()返回 true 长度 > 0
于 2013-05-31T20:36:46.553 回答
1

我推荐使用 Apache StringUtils.isEmpty()、.isNotEmpty()、.isBlank() 和 .isNotBlank()。保留 Apache Commons 对于许多 Java 怪癖很有用,而不仅仅是字符串。

http://commons.apache.org/proper/commons-lang/javadocs/api-release/org/apache/commons/lang3/StringUtils.html

于 2013-05-31T20:39:44.367 回答
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;
}
于 2013-05-31T20:40:28.650 回答