Rust で文字列を分割する
Nilesh Katuwal
2023年6月21日
この記事では、Rust で文字列を分割する方法について学びます。
Rust で split()
文字列メソッドを使用する
split ()
メソッドは、文字列スライスの部分文字列に対する反復子を返します。 これらは、パターンによって一致する文字で区切られています。
split()
メソッドが制限の 1つであるため、結果を将来の使用のために保存することはできません。 collect()
メソッドは、split()
によって返された結果をベクトルの形式で格納できます。
コード例:
fn main() {
let words = "human,being,alive";
for token in words.split(","){
println!("token is {}",token);
}
println!("\n");
let tokens:Vec<&str>= words.split(",").collect();
println!("first_word is {}",tokens[0]);
println!("second_word is {}",tokens[1]);
println!("third_word is {}",tokens[2]);
}
上記の例では、コンマ (,)
が見つかるたびに文字列の単語を分割します。
出力:
token is human
token is being
token is alive
first_word is human
second_word is being
third_word is alive
以下の例では、split()
メソッドを使用して、スペースに基づいて文字列を分離しています。 メソッドがイテレータを返すので、個々の文字列を取得できます。
コード例:
fn main() {
let sentence = "This life can be amazing".split(" ");
for s in sentence {
println!("{}", s);
}
}
出力:
This
life
can
be
amazing
別の用途として、分離された文字列を Iterator::collect
を使用してベクトルに収集することもできます。
コード例:
let sentence: Vec<&str> = "This life can be amazing".split(" ").collect();
println!("{:?}", sentence);
上記のコードは、分離された文字列を個々の要素としてベクターを作成します。
出力:
["This" "life" "can" "be" "amazing"]
char::is_uppercase
を使用して、使用可能な文字列を大文字で区切ることもできます。
コード例:
fn main() {
let words: Vec<&str> = "peopleIhumansIlifeIenjoy".split(char::is_uppercase).collect();
println!("{:?}", words);
}
出力:
["people" "human" "life" "enjoy"]
Rust で split_whitespace()
メソッドを使用する
split_whitespace()
は、入力文字列を異なる文字列に分割するために使用されます。 イテレータを返すため、トークンを介して反復できます。
コード例:
fn main(){
let words = "Rust is a programming language".to_string();
let mut i = 1;
for token in words.split_whitespace(){
println!("token {} {}",i,token);
i+=1;
}
}
出力:
token 1 Rust
token 2 is
token 3 a
token 4 programming
token 5 language