Elixir:
Trouver la longueur d'une chaîne de caractères
How to:
En Elixir, la longueur d’une chaîne est trouvée avec la fonction String.length/1
. Voici comment ça marche :
string = "Bonjour le monde"
longueur = String.length(string)
IO.puts(longueur) # Affiche 16
Si on utilise des caractères Unicode, ça reste aussi simple :
str_unicode = "😀😃😄"
IO.puts(String.length(str_unicode)) # Affiche 3
La longueur retourne le nombre de graphèmes, pas nécessairement le nombre d’octets ou de points de code Unicode.
Deep Dive
Avant Elixir, d’autres langages avaient leurs manières de faire — par exemple, en Python, c’est len("chaîne")
. Ce qui rend Elixir spécial, c’est qu’il compte les graphèmes. En UTF-8, un caractère comme “é” peut être représenté par plusieurs octets. Elixir gère ça tranquillement.
Alternatives? On pourrait compter les octets (byte_size/1
) ou les points de code (String.codepoints/1
et les compter), mais ce n’est pas idéal pour la longueur “visuelle” de la chaîne.
Implementation details? String.length/1
utilise le module String.Unicode
d’Elixir pour parcourir correctement les graphèmes. C’est robuste, supportant même les caractères combinants.