如何在java中的(String s:st)循环内部进行迭代?

时间:2014-03-10 19:10:03

标签: java loops foreach iterator

我正在迭代一个字符串向量:

for(String s : st){
    while(s.equals("a")) //just an example, not exactly this required
    {
        //go to next element : How to do this?
    }
    System.out.println(s);
}

如何迭代for(:)循环中的下一个元素?

修改

许多人问及while的逻辑,

字符串的向量基本上包含一个句子的单个单词,我必须在句子中折叠Noun Phrases,例如如果有一个像&#34这样的句子;罗伯特西格威克正在回家"。所以现在st [0]有" Robert"并且st [1]有" Sigwick"。在处理之后,我必须制作st [0] =" Robert Sigwick"。

所以我的代码有点像:

for(String s : st){
        string newEntry = "";
        while(getPOS(s).equals("NNP")) 
        {
            newEntry += s;
            // HERE I WANT THE HELP : something like s = getNext();
        }
        if(!newEntry.equals(""))
            result.add(newEntry);
    }

3 个答案:

答案 0 :(得分:0)

使用循环标签继续

OUTER:
for(String s : st){
    while(s.equals("a")) //just an example, not exactly this required
    {
        //go to next element : How to do this?
        continue OUTER;
    }
    System.out.println(s);
}

注意:只有嵌套循环时才需要循环标签。如果while应该是if语句,那么简单的continue;将起作用。

如果它是if语句,那么可能会有更好的方法。考虑:

for(String s : st){
    if(!s.equals("a")) //just an example, not exactly this required
    {
        System.out.println(s);
    }
}

这里的问题是整个方法更深入一层。这是一种偏好。

有关循环标签的更多信息:"loop:" in Java code. What is this, why does it compile?

答案 1 :(得分:0)

for(String s : st){
    if(s.equals("a")) //just an example, not exactly this required
    {
        //go to next element : How to do this?
       continue;
    }
    System.out.println(s);
}

答案 2 :(得分:0)

您需要解释为什么需要while循环。你不能用这种方式去下一个元素。