Rust 文字列がASCII文字のみかを判定する

Rust 文字列がASCII文字のみかを判定する

Rustで、文字列がASCII文字のみかを判定するサンプルコードを記述してます。「is_ascii()」で可能です。Rustのバージョンは1.66.0を使用してます。

環境

  • OS windows11 home
  • rustc 1.66.0

文字列がASCII文字のみかを判定

文字列がASCII文字のみかを判定するには「is_ascii()」を使用します。
※1文字でも「ASCII文字」以外が含まれていれば「false」が返ります。

"文字列".is_ascii()

実際に使用してみます。

fn main() {

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

    println!( "{}", str.is_ascii()  ); // true

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

    println!( "{}", str.is_ascii()  ); // false

    str = "あabc".to_string();

    println!( "{}", str.is_ascii()  ); // false

}

実行結果を見ると、ASCII文字のみかを判定することが確認できます。

空文字や空白、サロゲートペア

空文字は「true」が返り、半角空白は「true」で全角は「false」が返ります。通常の2バイトで1文字で表すところを、4バイトで1文字となるサロゲートペア文字だと「false」となります。

fn main() {

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

    println!( "{}", str.is_ascii()  ); // true

    str = " ".to_string();

    println!( "{}", str.is_ascii()  ); // true

    str = " ".to_string();

    println!( "{}", str.is_ascii()  ); // false

    str = "😅😅😅".to_string();

    println!( "{}", str.is_ascii()  ); // false

}