繁体   English   中英

在scala中列出字符串int转换

[英]List string int converting in scala

我对带有scala的char和int列表感到困惑。 这是我的例子:

scala> var s = "123456"
s: String = 123456

scala> s.map(_.toInt)
res0: scala.collection.immutable.IndexedSeq[Int] = Vector(49, 50, 51, 52, 53, 54)

scala> s.map(_.toInt).sum
res1: Int = 309

字符以我假定的ASCII代码转换,如何仅将其值转换为字符?

谢谢

s.map(_.asDigit).sum是正确的Scala API方法。 toInt将返回符号的ASCI代码,而不是数字表示形式。

scala> "123456".map(_.asDigit).sum
res0: Int = 21

您可以像这样使用Character.getNumericValue(char)

s.map(Character.getNumericValue(_))

产出

res2: scala.collection.immutable.IndexedSeq[Int] = Vector(1, 2, 3, 4, 5, 6)

另一种选择是将'0'减去

s.map(_ - '0')

对于相同的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM