Rust 文字列を区切り文字を含んで区切り文字で分割する

  • 作成日 2022.09.09
  • 更新日 2022.12.03
  • Rust
Rust 文字列を区切り文字を含んで区切り文字で分割する

Rustで、文字列を区切り文字を含んで区切り文字で分割するサンプルコードを記述してます。Rustのバージョンは1.62.1を使用してます。

環境

  • OS windows11 home
  • rustc 1.62.1

文字列を区切り文字を含んで区切り文字で分割する

文字列を区切り文字を含んで区切り文字で分割するには「split_inclusive(”).collect::<Vec<_>>()」を使用します。

"文字列".split_inclusive('区切り文字').collect::<Vec<_>>();

実際に使用してみます。

fn main() {

    let mut str: String = "a-b-c".to_string();

    println!( "{:?}", str.split_inclusive('-').collect::<Vec<_>>()); // ["a-", "b-", "c"]
    println!( "{}", str ); //a-b-c

    str = "a-b-c-".to_string();

    println!( "{:?}", str.split_inclusive('-').collect::<Vec<_>>()); // ["a-", "b-", "c-"]
    println!( "{}", str ); //a-b-c-

}

実行結果を見ると、区切り文字を含んで分割されていることが確認できます。

存在しない区切り文字を指定

存在しない区切り文字を指定すると、1つのベクタが生成されます。

fn main() {

    let str: String = "a-b-c".to_string();

    println!( "{:?}", str.split_inclusive(',').collect::<Vec<_>>()); // ["a-b-c"]
    println!( "{}", str ); // a-b-c

}

空文字

空文字の場合は、空のベクタが生成されます。

fn main() {

    let mut str: String = "".to_string();

    println!( "{:?}", str.split_inclusive(',').collect::<Vec<_>>()); // []
    println!( "{}", str ); // 

}