2013-01-05 322 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