Rust では文字列の n
文字目を取る場合は一旦 .chars
で文字にバラす必要がある(.chars
はイテレータを返すだけなのでほぼオーバーヘッドは無い)
let s = "abcdef";
let c = s.chars().nth(2);
assert_eq!(c, Some('c'));
バイト単位でなく文字単位でのアクセスなので,n
文字目にアクセスするには前から順に1文字ずつ手繰る必要があり O(n) かかるっぽい.バイト単位で良いなら [u8]
とかにばらしてからアクセスすれば O(1) になる.
すみませんズレてませんでした…勘違いした..nth
は添字と引数の値が1ずれるので注意.