Avatar ·

Wie erhalte ich in Rust die Anzahl der Zeichen in einem String, nicht die Bytes?

Hallo Kollegen! Ich habe gerade angefangen, Rust zu lernen, und bin auf ein unerwartetes Problem gestoßen. Ich muss die Länge eines Strings in Zeichen (char) ermitteln, nicht in Bytes. In anderen Sprachen wie Python oder Java gibt die Methode len() normalerweise die Anzahl der Zeichen zurück. Aber in Rust ist das anders. Hier ist ein Beispiel, das mich verwirrt hat: ```rust fn main() { let text = String::from("Привет, мир!"); println!("Länge des Strings: {}", text.len()); } ``` Ich erwartete 12 (die Anzahl der Zeichen im String "Привет, мир!"), aber ich bekam 20. Dann verstand ich, dass die Methode .len() Bytes zählt. In UTF-8 belegen kyrillische Zeichen 2 Bytes, daher das andere Ergebnis. Aber ich brauche genau die Anzahl der Zeichen – für die Benutzeroberfläche, die Überprüfung der Eingabelänge oder die Wortzählung. Könnt ihr mir sagen, ob es in Rust eine Möglichkeit gibt, dies zu tun?