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

String Scala:将字符串中的每个数字转换为整数,string,scala,integer,String,Scala,Integer,我想把一个数字中的每个数字转换成一个整数。这是我的代码 for (in <- lines) { for (c <- in) { val ci = c.toInt if (ci == 0) { // do stuff } } } for(在中)您可以拥有: val number = 123456 //convert Int to String and do transformation for

我想把一个数字中的每个数字转换成一个整数。这是我的代码

for (in <- lines) { 
    for (c <- in) {
        val ci = c.toInt
        if (ci == 0) {
            // do stuff
        }
    }
}
for(在中)您可以拥有:

val number = 123456
//convert Int to String and do transformation for each character to Digit(Int)
val digitsAsList = number.toString.map(_.asDigit)
这将导致数字数字化。然后使用该集合,您可以执行任何操作,包括过滤、映射、压缩:您可以在此页面上签出列表api:


希望能有所帮助。

一个可能的解决方案是:

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

如果行已经是字符串的集合,请省略.toString中的.toString。

答案是数字。非常感谢。我发现以前有人问过这个问题:我没有看到它,因为我搜索的是字符串而不是字符。请给出一个输入示例,即
“1234”
应该返回数字,
1234
?谢谢Kevin,我解决了这个问题。asDigit就是我要找的。我希望1234变成1和2,3和4,这样我就可以分别处理每个数字。我得到49、50、51等等。减去ascii零本来很容易,但我觉得这对我刚刚起步的Sc来说是个糟糕的开始如果我弯得那么低,那我的职业生涯就结束了。负数应该如何处理?换句话说,
-1234
的输出是什么?对于我的问题,除了数字之外,什么都不需要处理,所以解决方案就足够了。我使用阿尔文·亚历山大的Scala食谱作为指导。对于你的问题,我可以使用Integer.parseInt(“-1234”,10)(假设基数为10)。谢谢你的提问。
lines.foreach(in => in.toString.map(_.asDigit).filter(_ == 1).foreach(i => println(s"found $i in $in.")))