Rust 文字列から区切り文字を指定して一度だけ分割実行する

Rust 文字列から区切り文字を指定して一度だけ分割実行する

Rustで、文字列から区切り文字を指定して一度だけ分割実行するサンプルコードを記述してます。「split_once()」で可能です。Rustのバージョンは1.66.0を使用してます。

環境

  • OS windows11 home
  • rustc 1.66.0

文字列から区切り文字を指定して一度だけ分割実行する

文字列から区切り文字を指定して一度だけ分割実行するには「split_once()」を使用します。

"文字列".split_once( "区切り文字" )

実際に使用してみます。

fn main() {

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

    println!( "{:?}", str.split_once("-")); // Some(("a", "b-c"))
    println!( "{}", str ); // a-b-c

    str = "ab-c-d".to_string();

    println!( "{:?}", str.split_once("-")); // Some(("a", "b-c"))
    println!( "{}", str ); // a-b-c
    
}

実行結果を見ると、一度だけ分割されていることが確認できます。

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

存在しない区切り文字を指定すると、「None」が返ります。

fn main() {

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

    println!( "{:?}", str.split_once(",")); // None
    println!( "{}", str ); // a-b-c

}

空文字

空文字の場合は、「None」が返ります。

fn main() {

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

    println!( "{:?}", str.split_once(",")); // None
    println!( "{}", str ); // 

}

区切り文字に空文字を指定すると、空の文字列が1つでき分割されます。

fn main() {

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

    println!( "{:?}", str.split_once("")); // Some(("", "a-b-c"))
    println!( "{}", str ); // a-b-c

}