循环边缘案例问题

时间:2016-03-03 02:00:09

标签: java loops for-loop

很抱歉,如果这个问题看似微不足道,但我现在对此感到非常沮丧 - 我似乎无法弄明白。

我有一个名为SmallerVals的arraylist,其中包含[ab,ab'c, abce'] 我想使用一个迭代机制(for循环)打印yes表示arraylist中没有否定的字符数,并为那些字符打印no

例如,代码应该提供输出

  

是是是否是是是是否。

我的代码似乎正在跳过一个Yes。我希望你们能帮助我。谢谢!

代码在这里:

for(int i = 0; i < SmallerVals.size(); i++) {
    vals = SmallerVals.get(i);
    for(int j = 1; j<(vals.length();j++) { 
        if(Character.isLetter(vals.charAt(j))) {
            if((j+1)<=vals.length() 
               &&((j+1)!=vals.length())
               && ((vals.charAt(j+1)!= '\''))) {
                    System.out.println("Yes");
            }
        }
        if(vals.charAt(j)=='\'') {
            System.out.println("No");
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我建议您使用嵌套的for-loop来扫描字符串(假设没有空字符串):

for(int i = 0; i < SmallerVals.size(); i++) {
    String val = SmallerVals.get(i);

    for(int j = 0 ; j < val.length() ; j++) { 
        if(j == val.length()-1) {
            System.out.println("Yes");
            break;
        }

        if( Character.isLetter(val.charAt(j)) && val.charAt(j+1) != '\'' ) {
            System.out.println("Yes");
        } else {
            System.out.println("No");
            j++;
        }
    }
}