Rust:
Extracción de subcadenas

Cómo Hacerlo:

fn main() {
    let texto = "Rust es genial";
    let subcadena = &texto[5..10]; // Toma la subcadena desde el índice 5 al 9
    println!("La subcadena es: {}", subcadena);
}

Salida:

La subcadena es: es ge

Para extraer una subcadena desde el principio o hasta el final:

fn main() {
    let texto = "Hola, mundo!";
    let inicio = &texto[..5]; // Desde el comienzo hasta el índice 4
    let final = &texto[7..]; // Desde el índice 7 hasta el final
    println!("Inicio: '{}', Final: '{}'", inicio, final);
}

Salida:

Inicio: 'Hola,', Final: 'mundo!'

Profundización

En Rust, las cadenas son una vista sobre una secuencia de bytes UTF-8. Extraer subcadenas no es tan simple como en otros lenguajes; necesitas trabajar con límites de caracteres para evitar errores de codificación. Aunque .slice() es común en otros lenguajes, Rust utiliza la indicación de rango con corchetes para mantener la seguridad y claridad.

En la historia de Rust, siempre ha sido crucial manejar correctamente la memoria y la seguridad de datos. Por eso, aunque extraer subcadenas puede parecer más verborrágico comparado con otros lenguajes, es por una buena causa: evita errores comunes, como la corrupción de bytes y vulnerabilidades de seguridad.

Además, hay alternativas para situaciones más complejas, como usar las funciones chars() y bytes() para iterar a través de caracteres o bytes específicos, o el uso de bibliotecas de terceros para patrones de búsqueda más sofisticados.

Ver También