对于if语句中的每个循环?

时间:2011-09-25 02:22:27

标签: java

尝试在java中的for语句中编译此if循环时,我遇到了“非法启动表达式”错误。有谁知道为什么?

if(letter.equals(" ") || letter == null ||for(String a: array){ letter.equals(a);})

5 个答案:

答案 0 :(得分:4)

尝试

if( letter == null || letter.equals(" ") ||  checkArray(array, letter))
{
    ...
}


boolean checkArray(String[] arryay, String letter)
{
     for(String a: array) 
           if(letter.equals(a)) 
                return true;

     return false;
}

注意:在您调用equals()之后检查字母为null并没有多大意义;我重新订购了那些。

答案 1 :(得分:0)

你做不到。也许您应该将if语句移到for语句中?

rfausak所述,for语句不返回布尔值。你应该顺便做出答案。

答案 2 :(得分:0)

嗯,这是因为你不能在for条件下进行if循环。您似乎想看看letter是否在array数组中;如果是,那么您可以使用Apache commons-langArrayUtils

来完成
ArrayUtils.contains( array, letter );

答案 3 :(得分:0)

如果你使用Set,你可以写:

if ( (letter.equals(" ")) || (letter == null) || (a.contains(letter)) ) {}

答案 4 :(得分:0)

这不起作用,因为for不会计算为布尔值。为了便于阅读,您应该将其提取到方法中,其他答案中会出现好的示例。

其他一点,你应该重新调整你的条件,使其不受NullPointerException的影响

if (letter == null || " ".equals(letter) || arrayContains(array, letter)) {
        //...
}

如果你能够添加额外的库,那么有一些很好的apache公共库可以使这项工作更容易,即commons-lang中的StringUtils和commons-collections中的CollectionUtils

您还可以在检查String后使用String#trim()强化该输入检查是否可以使null大于一个字符。同样,这将是提取方法isBlank(String str)的良好候选者。