J'ai une chaîne et je dois scanner chaque occurrence de "foo" et lire tout le texte qui le suit jusqu'à une seconde "
. Puisque Rust n'a pas de fonction , J'ai besoin d'itérer des caractères pour le rechercher. Comment pourrais-je faire ça?contains
pour les chaînes
Edit : &str
De Rust a contains()
et find()
méthode.
J'ai besoin d'itérer des caractères pour le rechercher.
La méthode .chars()
renvoie un itérateur sur les caractères d'une chaîne. par exemple.
for c in my_str.chars() {
// do something with `c`
}
for (i, c) in my_str.chars().enumerate() {
// do something with character `c` and index `i`
}
Si vous êtes intéressé par les décalages d'octets de chaque caractère, vous pouvez utiliser char_indices
.
Examinez .peekable()
et utilisez peek()
pour regarder vers l'avenir. Il est enveloppé comme ceci car il prend en charge les points de code UTF-8 au lieu d'être un simple vecteur de caractères.
Vous pouvez également créer un vecteur de char
s et y travailler à partir de là, mais cela demande plus de temps et d'espace:
let my_chars: Vec<_> = mystr.chars().collect();