0

在列(数量)中,我也有一些 double 和 N/A 类型的值。

在我的比较器类比较方法中,这是下面提到的编码

   if(double1 == double2) {
        return 0;
    }

    // We know that both aren't null, so if only long 2 is null, 1 > 2
    if(double2 == null) {
        return 1;
    }

    // We know that both aren't null, so if only long 1 is null, 1 < 2
    if(double1 == null) {
        return -1;
    }

    // Nulls are handled, use the native compare
    return double1.compareTo(double2);

double1 和 double2 是 Double 类型。

它给出 Exception: java.lang.NumberFormatException: For input string: "N/A" 。

请给我解决方案。

4

1 回答 1

0

这是我的猜测(如果没有看到您如何使用这些 Doubles,我真的不能说)您正在寻找一个实际上并不存在的值,以及一个可能存在的值。

为此,我会说你这样构建你DoubleDouble.NaN

Double double1 = new Double(Double.NaN);

我不确定是否为排序操作定义了 NaN - 它没有复杂的顺序,因为它不是一个数字。您可能希望使用辅助结构(例如 a List<Double>)首先梳理Double不是数字的 s,然后将它们放在首位。然后,您可以对剩余Double的 s 进行排序。

于 2012-09-07T05:05:47.243 回答