【发布时间】:2025-12-27 12:25:15
【问题描述】:
在 Scala 中,如何将 Seq[Int] 转换为由 Seq 中的数字组成的单个数字。
例如
Seq(2,3,45,10) 到 234510 作为数字
一个简单的方法是
Seq(2,3,45,10).mkString.toLong
有没有更好、或许更高效/功能更强大的方法?
【问题讨论】:
-
我认为就性能而言,您建议的方法非常好。它也纯粹是功能性的,所以我不会为此失眠。
-
我认为这是一个 O(n) 所以应该没问题。谢谢@Zoltán
-
另外 - 关于性能,如果你有太多数字,你只会有内存问题,但你会在遇到
Long(9,223,372,036,854,775,807) 表示的最大数字之前遇到OutOfMemoryException. -
@Zoltan,我同意。在那种情况下,我可能会求助于 BigDecimal。
-
请注意,这种方法并非全部。它会以负数失败,如下所示:
scala> Seq(666, -6, 5).mkString.toLong java.lang.NumberFormatException: For input string: "666-65"
标签: scala functional-programming seq