我想将数字中的每个数字转换为int。这是我的代码
for (in <- lines) {
for (c <- in) {
val ci = c.toInt
if (ci == 0) {
// do stuff
}
}
}
我得到的结果是ascii代码,即1给出49.我正在寻找值1。 我知道,答案是微不足道的。我正试图用自己的引导来振作起来,直到我的Scala课程在两周内开始。任何帮助都表示感谢。
答案 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。