Julia Language
Normalizzazione delle stringhe
Ricerca…
Sintassi
- normalize_string (s :: String, ...)
Parametri
Parametro | Dettagli |
---|---|
casefold=true | Piega la stringa in un caso canonico basato sullo standard Unicode . |
stripmark=true | Striscia segni diacritici (cioè accenti) da caratteri nella stringa di input. |
Confronto tra stringhe senza distinzione tra maiuscole e minuscole
Le stringhe possono essere confrontate con l' operatore ==
in Julia, ma questo è sensibile alle differenze nel caso. Ad esempio, "Hello"
e "hello"
sono considerati stringhe diverse.
julia> "Hello" == "Hello"
true
julia> "Hello" == "hello"
false
Per confrontare le stringhe in modo non sensibile alla distinzione tra maiuscole e minuscole, normalizza le stringhe in base al caso, piegandole prima. Per esempio,
equals_ignore_case(s, t) =
normalize_string(s, casefold=true) == normalize_string(t, casefold=true)
Questo approccio gestisce anche Unicode non ASCII correttamente:
julia> equals_ignore_case("Hello", "hello")
true
julia> equals_ignore_case("Weierstraß", "WEIERSTRASS")
true
Nota che in tedesco la forma maiuscola del carattere ß è SS.
Confronto tra stringhe insensibili ai diacritici
A volte, si vogliono stringhe come "resume"
e "résumé"
per confrontare lo stesso. Cioè, grafemi che condividono un glifo di base, ma forse differiscono a causa delle aggiunte a quei glifi di base. Tale confronto può essere ottenuto eliminando segni diacritici.
equals_ignore_mark(s, t) =
normalize_string(s, stripmark=true) == normalize_string(t, stripmark=true)
Ciò consente all'esempio sopra di funzionare correttamente. Inoltre, funziona bene anche con caratteri Unicode non ASCII.
julia> equals_ignore_mark("resume", "résumé")
true
julia> equals_ignore_mark("αβγ", "ὰβ̂γ̆")
true