如何生成大小为n的序列,如下所示:
n = 3
000
001
002
003
...
010
011
012
...
999
我可以将固定数量的for循环用于固定数量的数字,但是我该如何在序列中使用n个数字呢?
谢谢! ^^
答案 0 :(得分:4)
这将提供您要查找的输出,但以Seq
中的String
为单位。您可以将3
替换为n
,以获得更多或更少的前导零。
Range(0,1000).map(n => "%03d".format(n))
scala.collection.immutable.IndexedSeq[String] = Vector(000, 001, 002, 003, 004, 005, 006, 007, 008, 009, 010, 011, ...)
答案 1 :(得分:1)
假设:
n
指定数字中的位数0 to Math.pow(10, n)
动态解决方案是:
val n = 3 //Or any number
def upperBound : Int = Math.pow(10, n).toInt
def formatNum(num : Int) : String = s"%0${n}d".format(num)
def range: Range = Range(0, upperBound)
range.map(formatNum)
这里的要点是,您可以使用字符串插值来使用s"..."
对数字进行变量填充,其中变量用$var_name
或${var_name}