Julia Language
Normalización de cuerdas
Buscar..
Sintaxis
- normalize_string (s :: String, ...)
Parámetros
Parámetro | Detalles |
---|---|
casefold=true | Dobla la cadena a un caso canónico basado en el estándar Unicode . |
stripmark=true | Pele las marcas diacríticas (es decir, los acentos) de los caracteres en la cadena de entrada. |
Comparación de cadenas insensibles a mayúsculas
Las cuerdas pueden compararse con el operador ==
en Julia, pero esto es sensible a las diferencias en el caso. Por ejemplo, "Hello"
y "hello"
se consideran cadenas diferentes.
julia> "Hello" == "Hello"
true
julia> "Hello" == "hello"
false
Para comparar las cadenas de una manera que no distingue entre mayúsculas y minúsculas, normalice las cuerdas plegándolas primero. Por ejemplo,
equals_ignore_case(s, t) =
normalize_string(s, casefold=true) == normalize_string(t, casefold=true)
Este enfoque también maneja unicode no ASCII correctamente:
julia> equals_ignore_case("Hello", "hello")
true
julia> equals_ignore_case("Weierstraß", "WEIERSTRASS")
true
Tenga en cuenta que en alemán, la forma en mayúscula del carácter ß es SS.
Comparación de cuerdas diacrítico-insensibles
A veces, uno quiere cadenas como "resume"
y "résumé"
para comparar iguales. Es decir, los grafemas que comparten un glifo básico, pero posiblemente difieren debido a las adiciones a esos glifos básicos. Dicha comparación se puede realizar mediante la eliminación de marcas diacríticas.
equals_ignore_mark(s, t) =
normalize_string(s, stripmark=true) == normalize_string(t, stripmark=true)
Esto permite que el ejemplo anterior funcione correctamente. Además, funciona bien incluso con caracteres Unicode que no son ASCII.
julia> equals_ignore_mark("resume", "résumé")
true
julia> equals_ignore_mark("αβγ", "ὰβ̂γ̆")
true