使用map和toInt将字符串转换为Scala中的数字集合

时间:2019-06-19 12:28:21

标签: string scala type-conversion int

我可以使用toInt将单个数字字符串转换为int:

scala> "1".toInt
res1: Int = 1

但是,当我使用map遍历字符并使用toInt分别转换它们时,我得到了它们的ASCII码:

scala> "123".map(_.toInt)
res2: scala.collection.immutable.IndexedSeq[Int] = Vector(49, 50, 51)

为什么会这样?是否可以使用maptoInt来做到这一点?

1 个答案:

答案 0 :(得分:5)

只需在toString函数中添加map

 "123".map(_.toString.toInt)

正如 Xavier 所解释的,String(集合)的元素是Char-因此只需再次创建一个String

或者按照他的建议.asDigit使用:

"123".map(_.asDigit)

来自Repl:

scala> "123".map(_.toInt)
res0: scala.collection.immutable.IndexedSeq[Int] = Vector(49, 50, 51)

scala> "123".map(_.toString.toInt)
res1: scala.collection.immutable.IndexedSeq[Int] = Vector(1, 2, 3)

scala> "123".map(_.asDigit)
res2: scala.collection.immutable.IndexedSeq[Int] = Vector(1, 2, 3)