Rust 文字列から先頭から文字数を指定して文字を残す

Rust 文字列から先頭から文字数を指定して文字を残す

Rustで、文字列から先頭から文字数を指定して文字を残すサンプルコードを記述してます。「truncate()」に残す文字数を指定して使用します。Rustのバージョンは1.66.0を使用してます。

環境

  • OS windows11 home
  • rustc 1.66.0

文字列から先頭から文字数を指定して文字を残す

文字列から先頭から文字数を指定して文字を残すには「truncate()」を使用します。

"文字列".truncate( 残す文字数 );

実際に使用してみます。

fn main() {

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

    println!( "{:?}", str.truncate(1) ); // ()
    println!( "{}", str ); // a

    str = "abcde".to_string();

    println!( "{:?}", str.truncate(2) ); // ()
    println!( "{}", str ); // ab

}

実行結果を見ると、指定文字数分だけ文字が残っていることが確認できます。

「0」を指定すると、全ての文字が削除されます。

fn main() {

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

    println!( "{:?}", str.truncate(0) ); // ()
    println!( "{}", str ); // a

}

また、文字数以上を指定すると全て残ります。

fn main() {

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

    println!( "{:?}", str.truncate(6) ); // ()
    println!( "{}", str ); // abcde

}

日本語の場合

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

fn main() {

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

    println!( "{:?}", str.truncate(3) ); // ()
    println!( "{}", str ); // あ

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

    println!( "{:?}", str.truncate(6) ); // ()
    println!( "{}", str ); // あい

}

サロゲートペアの場合

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

fn main() {

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

    println!( "{:?}", str.truncate(4) ); // ()
    println!( "{}", str ); // 😇

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

    println!( "{:?}", str.truncate(8) ); // ()
    println!( "{}", str ); // 😇😶

}