簡體   English   中英

在Java中檢查字符串是否為null

[英]checking a string for null in java

我有這個:

String object = "";
try {
    object = data.getString("url");
    System.out.println("Url Object:" + object);
}
catch (JSONException e) {
    e.printStackTrace();
}  

System.out.println("object is:" + object);
if (object!= null ) {
    // doSomething
} else {
    // is Null
}

盡管這是打印的:

object is: null

代碼輸入if條件,而不是else。

我想念什么?

編輯:其中數據是一個JSONObject。 我現在要測試url為null的情況。 因此,我知道數據為空,並且可以看到它已打印。

您的代碼是反模式。 將處理“字符串”的代碼移到“ try”塊中。 不要只是捕獲異常,然后就好像它們沒有發生一樣繼續進行,就必須再次弄清您是否處於有效狀態。 這就是“ try”塊的用途。 如果您仍在其中,則說明您處於有效狀態。

不要初始化String object ,以""如果你希望它是null ,如果JSON解析位失敗。

將您的頂行更改為:

String object = null;

更重要的是,請查看https://stackoverflow.com/a/21246501/599075

請注意, getString(..)返回"null" (作為ob.toString()String )。 因此,當您將其分配給object ,它是一個String: "null" ,而不是null

要更正您的代碼,一種方法是:

if (!object.equals("null")) {
   // doSomething
} else {
   // is Null
}

另一個解決方案是設置objectnull如果getString()返回"null"

if (data.getString("url").equals("null"))
    object = null;

您的情況的唯一解釋是data.getString("url"); 正在返回“空”字符串值。通過以下方式,我向您推薦以下幾點:

  • 通過空引用初始化對象( String object = null;

  • 更改if條件( if(object!=null) && !object.isEmpty()

    否則,請嘗試將data對象的內容完全打印到控制台,以便您可以檢查要解析的json內容。 (對不起,如果我在語言上犯了一些錯誤)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM