Convertir cadena a int en Rust

Nilesh Katuwal 21 junio 2023
Convertir cadena a int en Rust

Este artículo nos enseñará cómo convertir la cadena a int en rust.

Use el método str::parse::() para convertir cadenas a int en Rust

Podemos convertir directamente la cadena en un int usando el método str::parse::().

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

Código de ejemplo:

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

Producción :

789

Ahora, extraeremos el valor entero i de la a, que es una representación de cadena. Veamos el siguiente código.

Código de ejemplo:

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);
}

Producción :

789
0

Si queremos analizar un tipo específico como usize, podemos usar el operador especial turbofish de Rust en una declaración if-let para analizar un usize.

Código de ejemplo:

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

Producción :

USIZE RESULT: 60606

Si tenemos algunos dígitos dentro de otra cadena, podemos extraer una porción de esa cadena usando la función get(). Entonces, el número puede ser analizado.

Código de ejemplo:

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);
}

Producción :

INNER PART: 6789
PARSED: 6789