KDOC 428: 桁ごとに処理するスマートな方法を見る
この文書のステータス
- 作成
- 2025-08-08 貴島
 
- レビュー
- 2025-09-04 貴島
 
概要
コーディング問題に、数値を桁ごとに処理せよ、というものがある。さっと出てこなかったのでメモしておく。
import "fmt"
func main() {
        for _, r := range "12345" {
                c := int(r - '0')
                fmt.Println(c)
        }
}
1 2 3 4 5
流れ。
- 入力文字列(数字)をrune、つまりUnicodeコードポイントに分割する
- 1文字ごとにベースのコードポイント’0’を使って、コードポイントを数値に変換する。数字のコードポイントは連番で並んでいる
- 得られた数値を使う
関連
- KDOC 347: 大文字小文字の変換をそらで書く。類似した、コードポイントを使ったトリック。数字、小文字、大文字ごとでコードポイントが連番なのでトリックが使える