2013-09-27 73 views
0

我需要檢查是否一個輸入StringString[]是用於在Java方法中的計算null""檢查的字符串/串[]爲空或「」在Java

此方法採用參數作爲String ...

我使用下面的條件;可有人檢查,讓我知道我錯了,在這裏,

if(tokens==null){ 
    return; 
} else if(tokens[0] != null && tokens[0]!=""){ 
    return; 
} 

回答

2

tokens[0]!=""基本上是比較tokens[0]""內存的引用,這是不是你想要做什麼。相反,你需要實際檢查String的內容,例如

else if(tokens[0] != null && tokens[0].isEmpty()){ 

更新...

你的問題有點werid ...你不能有需要的方法一個String然後嘗試和使用它作爲一個數組,除非該方法採取varargs,那麼你會把它當作一個數組無論如何。

public boolean isEmpty(String... values) { 
    boolean isEmpty = values == null || values.length == 0; 
    if (!isEmpty) { 
     for (String value : values) { 
      if (value == null || value.isEmpty()) { 
       isEmpty = false; 
       break; 
      } 
     } 
    } 
    return isEmpty; 
} 

這意味着您可以使用...

isEmpty(""); 
isEmpty("I'm not an array"); 
isEmpty("Check 1", "Check 2"); 
isEmpty(new String[]{"Check 1", "Check 2"}); 

或者類似....

0

有沒有必要寫兩個條件。

你只需要嘗試isEmpty(),並且只有一個條件。

我需要檢查,如果輸入的字符串或String []爲空或 「」

那不是possible.Either的參數將是stringarray

如果tokens是一個數組,

if(tokens[0] !=null && tokens[0].isEmpty()){ 
return; 
} 

如果令牌是一個字符串,

if(tokens !=null && tokens.isEmpty()){ 
return; 
} 
0

假設方法以字符串(沒有的String [])的參數,那麼:

if(tokens == null || tokens.length() == 0) { 
    return; 
} 

如果方法接受的String []的說法,你需要決定是否要進行檢查:

  1. 如果數組爲空
  2. 如果陣列包含任何元素(。長度== 0)
  3. 如果任何元素爲null
  4. 如果任何元素是零長度

假設你要檢查所有四個,你可以嘗試:

if(tokens == null || tokens.length == 0) { 
    return; 
} else { 
    for(final String token : tokens) { 
     if(token == null || token.length() == 0) { 
      return; 
     } 
    } 
} 
0

取而代之的是:

} else if(tokens[0] != null && tokens[0]!=""){ 

難道你不希望這樣的:

} else if(tokens[0] == null || tokens[0]==""){ 

I.E.邏輯反轉。

+0

BTW,令牌[0] ==「」應該總是工作,但也有可能是案件中,它纔不是。 isEmpty()方法更好。 – ash

0

嘗試是辦理空和空支票簡潔的StringCollections實用程序庫:

import org.apache.commons.collections.CollectionUtils; 
import org.springframework.util.StringUtils; 

if(CollectionUtils.isEmpty(tokens)) 
    return; // tests that the Collection parameter is neither null nor empty 

for(String token : tokens) 
{ 
    if(!StringUtils.hasText(token)) // tests that the String parameter is neither null nor empty 
    return; 
} 
+0

如果CollectionUtils已在使用中,方便使用。其他,對一個簡單問題的重量級解決方案。 – ash