¿Cómo dividir una cadena en Rust?
La mejor opción es usar split()
, que divide la cadena aplicando diferentes criterios de separación, por ejemplo, indicando una cadena o un carácter de separación:
cadena1.split("separador");
cadena2.split('/');
O separando por caracteres numéricos:
cadena3.split(char::is_numeric);
Por espacios en blanco:
let subcadenas = "Dos subcadenas".split_whitespace();
O usando expresiones regulares:
let subcadenas = Regex::new(r"\s").unwrap().split("Uno Dos Tres");
Otra opción es usar lines()
para separar por saltos de línea:
let subcadenas = "Línea 1\nLínea 2\nLínea 3".lines();
En todos los casos devuelve un iterador que puede recorrerse en bucle:
for s in subcadenas {
println!("{}", s);
}
O se puede pasar a un vector usando collect()
:
let vector = subcadenas.collect::<Vec<&str>>();
// O también...
let vector: Vec<&str> = subcadenas.collect();
Estos son todos los ejemplos en Rust Playground: