【问题标题】:How to additionally iterate inside the loop for(String s : st) in java?如何在java中的for(String s:st)循环内额外迭代?
【发布时间】:2014-04-14 02:03:21
【问题描述】:

我将一个字符串向量迭代为:

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的逻辑,

字符串的向量基本上包含一个句子的单个单词,我必须折叠句子中的名词短语,例如如果有像“Robert Sigwick is going home”这样的句子。所以现在 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);
    }

【问题讨论】:

  • 您需要澄清您的问题。人们现在正在做出很多假设。
  • 我看到了这些回复,所以我在几分钟前添加了解释。谢谢!!
  • 我还是不明白为什么你需要一个内部 while 循环...getPos(s) 是什么?你已经解释了这个问题,但我认为你需要解释你到目前为止编写的代码。您当前问题的答案是否定的,您不能。有一个带有 for 循环的合同,它将迭代所有条目,你不能弄乱它在常规循环结构之外使用的迭代器。
  • getPOS(s) 是获取该词的词性(如 NNP - 名词短语等)的函数。请参阅link 的演示无论如何,问题是在我想知道是否有办法解决时提出的,您回答说“有一个带有 for 循环的合同,它将迭代所有条目”。谢谢!!我通过传统的 for 循环完成了我的工作,并在 while 循环中执行了i++

标签: java loops foreach iterator


【解决方案1】:
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);
}

【讨论】:

  • OP 有一个 while 循环。如果他们写错了,那么这是正确的,但这并不能回答当前提出的问题
  • 编辑了更多解释。
【解决方案2】:

在 continue 中使用循环标签

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?

【讨论】:

  • while 在那里没有任何意义。那当然应该是if
  • 现在比我的更完整。 :)
  • @RohitJain 可能缺少我们看不到的逻辑。无论如何,这两种方式都涵盖了它。
  • 编辑并解释了我的逻辑 - 我使用 while 的原因
【解决方案3】:

您需要解释为什么需要while 循环。您不能以这种方式转到下一个元素。

【讨论】:

  • 编辑了我的逻辑解释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多