我需要检查输入String
或 aString[]
是否是null
或""
用于在 java 中的方法内进行计算。
此方法将参数作为String
...
我正在使用以下条件;有人可以检查并让我知道我在这里做错了什么,
if(tokens==null){
return;
} else if(tokens[0] != null && tokens[0]!=""){
return;
}
tokens[0]!=""
基本上是比较 and 的内存引用tokens[0]
,""
这不是你想做的。相反,您需要实际检查 的内容String
,例如
else if(tokens[0] != null && tokens[0].isEmpty()){
更新...
你的问题有点奇怪......你不能有一个方法,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"});
或者类似的......
假设该方法采用 String 的参数(不是 String[]),那么:
if(tokens == null || tokens.length() == 0) {
return;
}
如果该方法采用 String[] 的参数,则需要决定是否要检查:
假设您想检查所有四个,您可以尝试:
if(tokens == null || tokens.length == 0) {
return;
} else {
for(final String token : tokens) {
if(token == null || token.length() == 0) {
return;
}
}
}
不需要写两个条件。
您只需尝试isEmpty()
, 只有一个条件。
我需要检查输入 String 或 String[] 是否为 null 或 ""
那是不可能的。论点要么是,string
要么array
,
如果tokens
是一个数组,
if(tokens[0] !=null && tokens[0].isEmpty()){
return;
}
如果令牌是字符串,
if(tokens !=null && tokens.isEmpty()){
return;
}
而不是这个:
} else if(tokens[0] != null && tokens[0]!=""){
你不想要这个:
} else if(tokens[0] == null || tokens[0]==""){
IE逻辑被反转。
尝试为String和Collections简洁地处理 null 和 empty 检查的实用程序库:
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;
}