2013-01-05 270 views
0

我正在与StanfordNPP从解析的树中提取数据。在for循环中编写while循环

我正在使用Scala进行编码。

val tp = TregexPattern.compile("SOME_PATTERN") 
val res = tp.matcher("SOME_TREE") 

读的这个结果我用

while (res.find()) { 
    println(res.getMatch.getLeaves.mkString(" ")) 
} 

我想重写for循环,而这个循环。

回答

1

如何:

val tp = TregexPattern.compile("SOME_PATTERN") 
val res = tp.matcher("SOME_TREE") 
for(it <- Iterator.continually(res.getMatch).takeWhile(_ => res.find)) { 
    println(it.getLeaves.mkString(" ")) 
} 
+0

运作良好,但it'返回的'的第一个结果是'null',如何来处理呢? – amrnt

+0

这样的工作'标签< - Iterator.continually(res.getMatch).takeWhile(_ => res.find)如果标签!= null'但有没有更好的方法?或以另一种方式整个代码?! – amrnt

+0

将“res.find”放在for循环前面以避免变为null。 – SpiderPig