当我运行以下程序时:
object Problem {
def main(args: Array[String]) = {
val v = 53.toString
val w = v(0).toInt
println(w)
}
}
它打印出53
,而不是我预期的5
。有人能帮助我理解为什么吗?
UPDATE :如果我使用charAt
而不是数组语法,则会发生同样的事情
答案 0 :(得分:9)
53是字符' 5'的ASCII值。试试63.toString
,您会在v(0).toInt
之后看到54。
使用.asDigit
将Char
转换为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'同样。