Wie iteriere ich über Zeichen eines Strings in Rust? Zeichen über Index durchlaufen
Hallo zusammen! Ich habe gerade angefangen, Rust zu lernen, und bin auf ein Problem bei der Arbeit mit Strings gestoßen. Ich muss jedes Zeichen eines Strings durchgehen und eine Aktion darauf ausführen. In anderen Sprachen (z. B. Python oder C++) bin ich es gewohnt, Indizes zu verwenden: `string[i]` in einer for-Schleife. Aber in Rust funktioniert das nicht.
Hier ist mein Code, der nicht kompiliert:
```rust
fn main() {
let text = String::from("Привет, мир!");
for i in 0..text.len() {
println!("Zeichen: {}", text[i]); // Fehler!
}
}
```
Der Compiler gibt einen Fehler aus: `cannot index into a string of type String`. Ich verstehe, dass Strings in Rust nicht einfach Arrays von Zeichen sind, sondern Byte-Sequenzen in UTF-8. Aber wie kann ich dann alle Zeichen korrekt durchlaufen?
Ich brauche eine Lösung, die korrekt mit Unicode funktioniert, einschließlich Multibyte-Zeichen (z. B. Kyrillisch, Emojis). Es wäre auch hilfreich zu erfahren, wie ich nicht nur das Zeichen, sondern auch seine Position (Index) im String erhalte. Könnt ihr mir zeigen, wie das richtig und effizient geht?
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs