【发布时间】: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