2013-09-27 43 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