Perl日記

PerlとかRubyとかPHPとかPythonとか

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)