【问题标题】:how to check double value is empty or not如何检查双值是否为空
【发布时间】:2013-10-02 09:03:35
【问题描述】:

我正在尝试从json中获取Double值,我想问一下如何检查double值是否为空?

这就是我初始化它的方式 私有静态

final String kartu_xcord = "xcord";
    private static final String kartu_ycord = "ycord";
    ouble xcord,ycord;

这就是我解析我的 json 的方式:

xcord = c.getDouble(kartu_xcord);
ycord = c.getDouble(kartu_ycord);

这就是我尝试检查 xcord 是否为空或为空的方式:

if (xcord.isNaN()) {
            LinlayNoMap.setVisibility(View.VISIBLE);
        } else {
            linlaymap.setVisibility(View.VISIBLE);
}

希望有人能帮我解决我的问题,谢谢

【问题讨论】:

  • 你可以试试这样的:valueOf(xcord).isEmpty();
  • double 不能为空

标签: java android json


【解决方案1】:

在java中double是一个不能为null的原始类型,java中有Double包装类可以检查为null。

声明 Double 而不是 double 类型的坐标,并检查 Double 值是否为空。

【讨论】:

  • 我已更改为 Double 并制作 if (xcord.isNaN()) { LinlayNoMap.setVisibility(View.VISIBLE); } else { linlaymap.setVisibility(View.VISIBLE);但它返回力关闭
  • 当您通过 xcord.isNaN() 检查时,它会告诉您值是否为数字,我想它不会检查 null。
  • 我检查了我的日志,我在这一行发现了一个错误:if (xcord.isNaN())
  • 那么我如何检查它是否为空?
  • 你可以使用if(DoubleValue==null){}直接检查你的Double值,因为Double是类它不是java中的原始类型。
【解决方案2】:

在 Java 中,double 不能是 null

【讨论】:

    【解决方案3】:

    它不能为 null 或空。这是一个双重价值。不妨试试双包装?

    【讨论】:

    • 所以我不能创造条件来检查它?因为如果 xcord 返回空值,如果不返回,我想做出不同的看法
    • 如果没有“空值”这样的东西,你怎么检查它? Double 对象包装器可以为 null,所以也许您可以使用它。
    【解决方案4】:

    您可以检查您的 json 是否有您正在寻找的密钥:

    if (c.hasDouble("my_coord")) {
      y_coord = c.getDouble("my_coord");
    }
    

    如果 y_coord 是 Double(大写 D),您可以将其设置为 null。

    if (c.hasDouble("my_coord")) {
      y_coord = c.getDouble("my_coord");
    } else {
      y_coord = null;
    }
    

    这当然取决于您用来读取JSON 的API,hasDouble 方法可以被称为别的东西。推荐你试试GSON,很简单,会为你处理大部分的解析工作。

    【讨论】:

    • 我已更改为 Double 并制作 if (xcord.isNaN()) { LinlayNoMap.setVisibility(View.VISIBLE); } else { linlaymap.setVisibility(View.VISIBLE);但它返回力关闭
    【解决方案5】:

    在 Java 中双精度数永远不能为空。 您可以改为使用 Json 的 hasKey 方法来检查您正在解析的项目是否包含该值。

    c.hasKey("xcord")
    

    【讨论】:

    • 所以我不能创造条件来检查它?因为如果 xcord 返回空值,如果不返回,我想做出不同的看法
    • 如果你坚持使用原始双精度数,另一方面,双精度数(包装类)可以为空。
    【解决方案6】:

    假设你使用的是 JSONObject,你可以这样做

    xcord = c.optDouble(kartu_xcord, Double.MIN_VALUE);
    
    if (xcord == Double.MIN_VALUE){
      //xcord is empty
    }
    

    【讨论】:

    • Double.MIN_VALUE 可以是普通数据中永远不会存在的任何值。
    【解决方案7】:

    使用双精度,而不是双精度。

    Double  dValue= someVariable;
    
    if(!dValue.isNaN())
    {
     // you code here
    }
    

    【讨论】:

    • Not a Number 是 double 的一个非常具体的值,与空虚或缺少值无关。
    猜你喜欢
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多