Rust 文字列から位置を指定して文字を削除する

Rust 文字列から位置を指定して文字を削除する

Rustで、文字列から位置を指定して文字を削除するサンプルコードを記述してます。「remove()」に文字数を指定することで可能です。Rustのバージョンは1.66.0を使用してます。

環境

  • OS windows11 home
  • rustc 1.66.0

文字列から位置を指定して文字を削除

文字列から位置を指定して文字を削除するには「remove()」を使用します。

"文字列".remove(文字数);

実際に使用してみます。

fn main() {

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

    println!( "{}", str.remove(0) );
    // a
    println!( "{}", str );
    // bcde

    str = "abcde".to_string();

    println!( "{}", str.remove(1) );
    // b
    println!( "{}", str );
    // acde

    str = "abcde".to_string();

    println!( "{}", str.remove(2) );
    // c
    println!( "{}", str );
    // abde

}

実行結果を見ると、指定した位置で削除されていることが確認できます。

日本語の場合

日本語の場合は、「3」単位で位置を指定します。

fn main() {

    let mut str: String = "あいうえお".to_string();

    println!( "{}", str.remove(0) );
    // あ
    println!( "{}", str );
    // いうえお

    str = "あいうえお".to_string();

    println!( "{}", str.remove(3) );
    // い
    println!( "{}", str );
    // あうえお

    str = "あいうえお".to_string();

    println!( "{}", str.remove(6) );
    // う
    println!( "{}", str );
    // あいえお

}

サロゲートペアの場合

サロゲートペアの場合は、「4」単位で位置を指定します。

fn main() {

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

    println!( "{}", str.remove(0) );
    // 😇
    println!( "{}", str );
    // 😶😻

    str = "😇😶😻".to_string();

    println!( "{}", str.remove(4) );
    // 😶
    println!( "{}", str );
    // 😇😻

    str = "😇😶😻".to_string();

    println!( "{}", str.remove(8) );
    // 😻
    println!( "{}", str );
    // 😇😶

}