如何将数字拆分为scala中的数字

lok*_*oki 6 split scala numbers

以下代码段可以很好地将数字拆分成数字,但它太长了:

val digits = (num toString).toList map(_.toString) map(_.toInt)
Run Code Online (Sandbox Code Playgroud)

我使用它们toString来获取应用时的实际值,toInt而不是Int表示Char返回的值toList.

我是Scala的新手,我不习惯scala的表达风格.有没有更短的方式来做到这一点.

Lui*_*hys 23

scala> 123.toString.map(_.asDigit)
res0: scala.collection.immutable.IndexedSeq[Int] = Vector(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)


Rex*_*err 5

(""+123).map(_-48)
Run Code Online (Sandbox Code Playgroud)

我认为字面上最短,但有时清晰度更重要.(至少有一个额外的角色'0'代替48!)

  • 太棒了1,清晰度0. (5认同)
  • 简称:(“” +123)map(_- 48) (2认同)