Rustで文字列を数字に、あるいは数字を文字列にする方法
毎回ググってるのでまとめ。 10進数だけでなく、2進数など、基数変更に対応。
文字と数字の相互変換
charと数値型を行き来したい場合は、to_digit()あるいはfrom_digit()を使う。こっちは覚えやすい。
>> '5'.to_digit(10).unwrap() // 10進数 5 >> std::char::from_digit(10, 36) // 2番目の引数は基数、この場合は36進数 'a'
文字列の場合
文字列と数値を行き来したい場合は以下のようにする。
>> format!("{:b}", 10) // 2進数 "1010" >> format!("{}", 10) // 10進数 "10" >> 10.to_string() // to_stringは覚えやすいが、10進数固定のようだ。 "10" >> format!("{:x}", 10) // 16進数 "a" >> i64::from_str_radix("1010", 2).unwrap() // 2番目の引数は基数、この場合は2進数 10
to_str_radixだと覚えやすいのだが。