Rust で文字列を分割する

Nilesh Katuwal 2023年6月21日
  1. Rust で split() 文字列メソッドを使用する
  2. Rust で split_whitespace() メソッドを使用する
Rust で文字列を分割する

この記事では、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

関連記事 - Rust String