ScalaでCharをtoIntすると文字コードになる
はまったのでメモ。
"1234567890" という文字列を List(1,2,3,4,5,6,7,8,9,0) という形にしたい。
やってみた。
"1234567890".toList //=> List[Char] = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 0) "1234567890".toList.map(_.toInt) //=> List[Int] = List(49, 50, 51, 52, 53, 54, 55, 56, 57, 48)
なんか値がおかしい。
調べたら、CharのtoIntは文字コード変換になるようだ。
なので、toStringをかますと一応ちゃんと動く。
"1234567890".toList.map(_.toString.toInt) //=> List[Int] = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
またasDigitを使えば一発でいける。
"1234567890".toList.map(_.asDigit) //=> List[Int] = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)