在Java中检查空字符串

时间:2009-12-24 06:11:18

标签: java string

我不知道下面的代码有什么问题....我从文本框中获取输入并将输入放在一个字符串中。如果文本框为空,则返回空字符串。在下面的代码中

   String[] str = new String[9]; 
   for(int i=0;i<9;i++){
       if(str[i].equals("")){
          System.out.println("set " + cmds[i] + " " + str[i]);
          WriteThread.sendCommand("set " + cmds[i] + " " + str[i] + "\n", false);
       }
    }

在上面的代码str[i]中存储了文本框的输入文本,我试图检查数组的任何元素是否为空。我也试过了str[i] == ""str[i] == null,但没有运气。 if块中的语句,如果我打印字符串str[i],它没有显示任何意味着它是空的。

我做错了什么?

6 个答案:

答案 0 :(得分:27)

你可以尝试:

if (str[i] == null || str[i].trim().equals("")){
// your code
}

答案 1 :(得分:15)

您可以使用Apache Commons Lang检查字符串:

if (StringUtils.isBlank(str[i]) {
    ...
}

StringUtils.isBlank正在检查字符串是null还是空(即如果删除所有空白字符时它等于"")。

答案 2 :(得分:1)

我会推荐

if (str[i] == null || str[i].trim().length==0){
// your code
}

或Java 6以后

if (str[i] == null || str[i].trim().isEmpty()){
// your code
}

而不是使用equals()因为equals()method is overkill to test for an empty String

答案 3 :(得分:0)

上面的代码只在字符串为空时才执行,是否是所需的行为?在循环之前将str声明为新权限几乎可以保证它是空的。

如果您尝试从文本框中分配值,则需要在循环之前的某处分配这些赋值。

答案 4 :(得分:0)

我实际上试图运行你的代码片段并在条件

上得到NullPointerException
  

STR [1] .equals( “”)

str [i] == null为我工作。您确定在问题中输入了正确的代码吗?测试刚刚初始化的空数组的空字符串似乎很奇怪。

答案 5 :(得分:0)

一个非常简单的解决方案就是这样。

if(str[] != null && !str[].equals(""))