2017-03-01 52 views
-3

如何檢測我的字符串text是否不等於「null」?我已經嘗試過,但不起作用。它總是執行的代碼的其餘部分,並顯示對話框 -如何檢測字符串是否等於某事?

if (!text.equals("null")) { 
     AlertDialog alertDialog = new AlertDialog.Builder(this) 
       .setTitle("BROADCAST").setMessage(text).create(); 
     alertDialog.getWindow().setType(
       WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 
     alertDialog.show(); 
    } else { 
     // don't show 
    } 

PS:我不是想檢查我的字符串不是空。我說: 「NULL」 存儲在我的字符串文本

+0

http://stackoverflow.com/questions/2601978/how-to-check-if-my-string-is - 等於零 – WOUNDEDStevenJones

+2

可能重複[如何檢查我的字符串是否等於空?](http://stackoverflow.com/questions/2601978/how-to-check-if-my-string-is-等於零) –

+0

您的if語句正在檢查文本是否等於字符串「null」。如果你想檢查String對象是否爲null或不爲空,請看@MichaelVescovo的第一個例子。 – Arcaeic

回答

3

您可以使用:

if(text != null) { 
    AlertDialog alertDialog = new AlertDialog.Builder(this) 
      .setTitle("BROADCAST").setMessage(text).create(); 
    alertDialog.getWindow().setType(
      WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 
    alertDialog.show(); 
} 

或檢查空字符串:

if(!text.equals("") { 
    AlertDialog alertDialog = new AlertDialog.Builder(this) 
      .setTitle("BROADCAST").setMessage(text).create(); 
    alertDialog.getWindow().setType(
      WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 
    alertDialog.show(); 
} 

或兩項:

if(text != null && !text.equals("") { 
    AlertDialog alertDialog = new AlertDialog.Builder(this) 
      .setTitle("BROADCAST").setMessage(text).create(); 
    alertDialog.getWindow().setType(
      WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 
    alertDialog.show(); 
} 

編輯:如果您嘗試檢查字符串是否等於l到單詞「null」,那麼你原來的代碼看起來很好。我會建議使用調試器或打印一些日誌語句來檢查發生了什麼。

所以:

private static final String TAG = "SomeActivity"; 

if (!text.equals("null")) { 
    // Not equal to the word null 
    Log.d(TAG, "text value should NOT be null and is: " + text); 

    //AlertDialog alertDialog = new AlertDialog.Builder(this) 
    //  .setTitle("BROADCAST").setMessage(text).create(); 
    // alertDialog.getWindow().setType(
    //  WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 
    // alertDialog.show(); 
} else { 
    // don't show 
    Log.d(TAG, "text value should be null and is: " + text); 
} 

但實際上這只是測試你已經不是犯了一個錯誤。對此,我建議不要使用「null」來表示空字符串。這可能會讓其他人看到代碼時感到困惑。堅持更「標準化」的「」。

+0

使用「」.equals(文本),以便null可能性不會咬你。編輯:nevermind。你改變了它。 – tafoo85

1

按原樣,您的代碼當前正在檢查字符串是否等於字符串「null」。如果你想看看String對象本身爲空或不存在,可以考慮:

if (text != null) { 
    AlertDialog alertDialog = new AlertDialog.Builder(this) 
      .setTitle("BROADCAST").setMessage(text).create(); 
    alertDialog.getWindow().setType(
      WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 
    alertDialog.show(); 
} else { 
    // don't show 
} 
+1

這不會編譯。你不能'如果(文本)',因爲'text'是一個字符串,你需要一個布爾值的警衛。 @ MichaelVescovo的'if(text!= null)'的答案有效。 – Fodder

+0

@飼料謝謝!最近我一直在用Python進行編程。我不確定它是否會在Java中進行編譯。我編輯了我的答案。 – Arcaeic

+0

@Arcaeic檢查我的問題中的粗體文本 – joey

相關問題