Rust で文字列を Int に変換する

Nilesh Katuwal 2023年6月21日
Rust で文字列を Int に変換する

この記事では、Rust で文字列を int に変換する方法を説明します。

Rust で str::parse::() メソッドを使用して文字列を Int に変換する

str::parse::() メソッドを使用して、文字列を int に直接変換できます。

let string_value = "27".to_string();
let int_value = string_value.parse::<i32>().unwrap();

コード例:

fn main() {
    let mut string_one: &str = "789";
    let mut i = match string_one.parse::<i32>() {
        Ok(i) => i,
        Err(_e) => -1,
    };
    println!("{:?}", i);
}

出力:

789

次に、文字列表現である a から整数値 i を抽出します。 次のコードを見てみましょう。

コード例:

fn main() {
    let mut a = "789";
    let mut i: i32 = a.parse().unwrap_or(0);
    println!("{:?}", i);

    a = "12u3";
    i = a.parse().unwrap_or(0);
    println!("{:?}", i);
}

出力:

789
0

usize のような特定の型に解析したい場合は、usize に解析するための if-let ステートメントで特別な Rust turbofish opertor を使用できます。

コード例:

fn main() {
    let data = "60606";
    if let Ok(result) = data.parse::<usize>() {
        println!("USIZE RESULT: {}", result);
    }
}

出力:

USIZE RESULT: 60606

別の文字列内にいくつかの数字がある場合、get() 関数を使用してその文字列からスライスを抽出できます。 次に、数値を解析できます。

コード例:

fn main() {
    let value = "a 6789 b";

    let inner_part = value.get(2..value.len() - 2).unwrap();
    println!("INNER PART: {}", inner_part);

    // Tp parse inner part.
    let result: u32 = inner_part.parse().unwrap();
    println!("PARSED: {0}", result);
}

出力:

INNER PART: 6789
PARSED: 6789