字符串的Scala转换

时间:2016-09-13 23:36:09

标签: scala

当我运行以下程序时:

object Problem {
  def main(args: Array[String]) = {
    val v = 53.toString
    val w = v(0).toInt
    println(w)
  }
}

它打印出53,而不是我预期的5。有人能帮助我理解为什么吗?

UPDATE :如果我使用charAt而不是数组语法,则会发生同样的事情

2 个答案:

答案 0 :(得分:9)

53是字符' 5'的ASCII值。试试63.toString,您会在v(0).toInt之后看到54。

使用.asDigitChar转换为Int值。换句话说,'5'.toInt == 53'5'.asDigit == 5

答案 1 :(得分:1)

使用charAt()绝对可行,并打印5

object Problem {
  def main(args: Array[String]) = {
    val v = 53.toString
    val w = v.charAt(0)
    println(w)
  }
}

这是角色' 5'的ascii值。 ASCII table

因此,如果删除toInt并执行此代码:

object Problem {
  def main(args: Array[String]) = {
    val v = 53.toString
    val w = v(0)
    print(w)
  }
}

输出应该是' 5'同样。