Scala:将字符串中的每个数字转换为整数

时间:2016-10-07 07:39:21

标签: string scala integer

我想将数字中的每个数字转换为int。这是我的代码

for (in <- lines) { 
    for (c <- in) {
        val ci = c.toInt
        if (ci == 0) {
            // do stuff
        }
    }
}

我得到的结果是ascii代码,即1给出49.我正在寻找值1。 我知道,答案是微不足道的。我正试图用自己的引导来振作起来,直到我的Scala课程在两周内开始。任何帮助都表示感谢。

2 个答案:

答案 0 :(得分:1)

你可以拥有:

val number = 123456
//convert Int to String and do transformation for each character to Digit(Int)
val digitsAsList = number.toString.map(_.asDigit)

这将导致数字化数字化。然后使用该Collection,您可以执行任何操作:过滤,映射,压缩:您可以在此页面上查看List api:http://www.scala-lang.org/api/2.11.8/#scala.collection.immutable.List

希望有所帮助。

答案 1 :(得分:1)

一种可能的解决方案是:

for(in <- lines) {
    in.toString.map(_.asDigit).foreach { i =>
        if(i == 1) {
            //do stuff
        }
    }
}

更紧凑的w /输出:

lines.foreach(in => in.toString.map(_.asDigit).filter(_ == 1).foreach(i => println(s"found $i in $in.")))

如果lines已经是Strings的集合,则省略in.toString上的.toString。