文字数
String型の文字数の取得は chars().count() を使用します。
[変数].chars().count()
例
let s = "abcdeあいうえお"; let count = s.chars().count(); // 文字数の10になる
バイト数
String型のバイト数を求めるのは以下のようになります。
[変数].len()
例
let s = "abcdeあいうえお"; let len = s.len(); // バイト数の20になる。
指定位置の文字を取り出す
nthを使う方法と、文字列をベクタにしてから取り出す方法があります。 大量に扱う場合、ベクタに変換した方が速くなります。
nth
位置は 0 から s.chars().count() - 1 になります。
s.chars().nth([位置]);
例
println!("{}", s.chars().nth(0).unwrap());
文字列からベクタ型
String型をベクタ型にする場合、以下のようになります。
let [変数名]: Vec<char> = s.chars().collect();
各文字は以下のように先頭(0)から末尾(vc.len() - 1)まで指定することができます。
let s = "abcdeあいうえお"; let vc: Vec<char> = s.chars().collect(); let mut i = 0; while i < vc.len() { println!("{}", vc[i]); i += 1; }
for文で行うこともできます。
let s = "abcdeあいうえお"; let vc: Vec<char> = s.chars().collect(); for c in &vc { println!("{}", c); }実行結果は1行に1文字が表示されます。
a b ... ... え お