2009-12-24 59 views
16

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

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,但没有运气。如果我打印字符串str[i] if语句里面的语句,它不会显示它意味着它是空的。

我做错了什么吗?

+1

你在试图检查什么?您检查字符串是否为空,然后进行打印,并且您所说的结果与“set”+ ...类似,因为您看不到空字符串:)。也许你想测试的不是条件:即如果(!str [i] .equals(“”)).. – sateesh 2009-12-24 06:19:05

+0

真的,简单检查是否()条件... – ThinkJet 2009-12-24 06:50:45

+0

你认为你可以编辑你的问题,使它更容易理解?从评论和答案,我可以看到我不是唯一一个不知道你真的想要什么... :-( – KLE 2009-12-24 07:07:12

回答

27

你可以尝试:

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

它为我工作....非常感谢.. – 2009-12-24 07:35:00

+1

这不是Javascript。 – vivek 2014-07-19 04:59:38

0

如果字符串是空的,是期望的行为上面的代码只执行?在循环之前还声明str为新的权利,这几乎可以保证它是空的。

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

15

可以使用Apache Commons Lang检查的字符串:如果字符串

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

StringUtils.isBlank正在检查null或空(即,当所有空白字符被删除,如果它等于"")。

+0

如果有人刚刚进入空间会发生什么? – Jony 2012-06-21 06:06:03

+1

@AshishDonvir'StringUtils.isBlank(“”)'返回'true'。如果你想让这个测试返回'false',你可以使用'StringUtils.isEmpty(...)'代替。 – romaintaz 2012-06-21 06:54:20

0

其实我试图运行你的代码段,并得到一个NullPointerException你的条件

STR [1] .equals( “”)

STR [1] == NULL工作了我。你确定你把正确的代码放在你的问题中。测试刚刚初始化的空数组的空字符串似乎很奇怪。

0

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

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