Rust:
Trouver la longueur d'une chaîne de caractères
How to:
Rust utilise la méthode .len()
pour obtenir la taille d’une chaîne de caractères en bytes. Voici comment ça marche :
fn main() {
let hello = "Bonjour";
println!("La longueur de '{}' est {}.", hello, hello.len());
let emoji = "😊";
println!("La longueur de '{}' est {}.", emoji, emoji.len());
}
Output:
La longueur de 'Bonjour' est 7.
La longueur de '😊' est 4.
Deep Dive
Historiquement, mesurer la longueur d’une chaîne est simple avec du texte ASCII, car chaque caractère est représenté par un seul byte. Avec l’introduction d’UTF-8 et les caractères à plusieurs bytes, c’est devenu un peu plus compliqué. Rust gère les chaînes en UTF-8 par défaut, alors .len()
renvoie le nombre de bytes, pas forcément de caractères visibles. Autres options incluent .chars().count()
pour le nombre de caractères Unicode, et .graphemes(true).count()
avec la crate unicode-segmentation
pour les graphèmes affichés.
extern crate unicode_segmentation;
use unicode_segmentation::UnicodeSegmentation;
fn main() {
let hello = "Bonjour";
let emoji = "😊";
println!("Nombre de caractères Unicode dans '{}' : {}", hello, hello.chars().count());
println!("Nombre de caractères Unicode dans '{}' : {}", emoji, emoji.chars().count());
println!("Nombre de graphèmes dans '{}' : {}", emoji, emoji.graphemes(true).count());
}
Output:
Nombre de caractères Unicode dans 'Bonjour' : 7
Nombre de caractères Unicode dans '😊' : 1
Nombre de graphèmes dans '😊' : 1
See Also
Pour plus d’informations, vous pouvez consulter la documentation sur les chaînes en Rust :
- Rust String Docs : https://doc.rust-lang.org/std/string/
- UTF-8 et traitement de texte : https://unicode.org/