代码之家  ›  专栏  ›  技术社区  ›  Surjya Narayana Padhi

检查Java中的空字符串

  •  16
  • Surjya Narayana Padhi  · 技术社区  · 16 年前

       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 回复  |  直到 10 年前
        1
  •  27
  •   fastcodejava    16 年前

    你可以试试:

    if (str[i] == null || str[i].trim().equals("")){
    // your code
    }
    
        2
  •  15
  •   Romain Linsolas    16 年前

    你可以使用 Apache Commons Lang 要检查字符串,请执行以下操作:

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

    StringUtils.isBlank 正在检查字符串是否正确 null 或为空(即,如果等于 ""

        3
  •  1
  •   Martijn Pieters    5 年前

    我推荐

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

    或Java 6以后的版本

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

        4
  •  0
  •   GrayWizardx    16 年前

    上述代码仅在字符串为空时执行,这是所需的行为吗?在循环之前将str声明为new几乎可以保证它是空的。

    如果您试图从文本框中分配值,则需要在循环之前的某个位置进行这些分配。

        5
  •  0
  •   algernon    16 年前

    实际上,我试图运行您的代码段,但在您的条件

    str[i]。等于(“”)

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

        6
  •  0
  •   Saqib S    10 年前

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

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