【问题标题】:Get size of Regex.MatchIterator in Scala 2.7.7?在 Scala 2.7.7 中获取 Regex.MatchIterator 的大小?
【发布时间】:2011-08-28 18:30:40
【问题描述】:

在 Scala 2.7.7 中获取 Regex.MatchIterator 大小的最优雅方法是什么?

我尝试了以下方法:

¤ scala
Welcome to Scala version 2.7.7final (OpenJDK 64-Bit Server VM, Java 1.6.0_20).
Type in expressions to have them evaluated.
Type :help for more information.

scala> "a".r.findAllIn("a").size  
<console>:5: error: value size is not a member of scala.util.matching.Regex.MatchIterator
       "a".r.findAllIn("a").size
                            ^

scala> "a".r.findAllIn("a").size()
<console>:5: error: value size is not a member of scala.util.matching.Regex.MatchIterator
       "a".r.findAllIn("a").size()
                            ^

【问题讨论】:

  • 我没有 Scala 2.7.7,但您的示例适用于更高版本的 Scala。你试过length吗?
  • 是的,我也试过lengthscala&gt; "a".r.findAllIn("a").length&lt;console&gt;:5: error: value length is not a member of scala.util.matching.Regex.MatchIterator

标签: regex scala iterator


【解决方案1】:

您可以转换迭代器:

iter.toList.size

一定要保存转换后的迭代器(如果你想在计算完大小后访问数据),因为它只能迭代一次。

您也可以使用 foldLeft,而不是转换为另一个集合:

(0 /: iter) { case (sum, _) => sum+1 }

【讨论】:

    猜你喜欢
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 2016-02-18
    相关资源
    最近更新 更多