Szukaj…


Składnia

  • normalize_string (s :: String, ...)

Parametry

Parametr Detale
casefold=true Złóż ciąg znaków do kanonicznej litery opartej na standardzie Unicode .
stripmark=true Usuń znaki diakrytyczne (tj. Akcenty) ze znaków w ciągu wejściowym.

Porównanie ciągów bez rozróżniania wielkości liter

Ciągi można porównać z operatorem == w Julii, ale jest to wrażliwe na różnice w wielkości liter. Na przykład "Hello" i "hello" są uważane za różne ciągi.

julia> "Hello" == "Hello"
true

julia> "Hello" == "hello"
false

Aby porównać ciągi znaków bez rozróżniania wielkości liter, normalizuj je, najpierw je składając. Na przykład,

equals_ignore_case(s, t) =
    normalize_string(s, casefold=true) == normalize_string(t, casefold=true)

To podejście obsługuje także poprawnie kodowanie inne niż ASCII:

julia> equals_ignore_case("Hello", "hello")
true

julia> equals_ignore_case("Weierstraß", "WEIERSTRASS")
true

Zauważ, że w języku niemieckim wielką literą znaku ß jest SS.

Porównanie ciągów znaków diakrytyczno-niewrażliwych

Czasami chce się, aby ciągi takie jak "resume" i "résumé" porównywały się równo. Oznacza to, że grafemy, które mają wspólny glif, ale prawdopodobnie różnią się z powodu dodatków do tych podstawowych glifów. Takie porównanie można osiągnąć, usuwając znaki diakrytyczne.

equals_ignore_mark(s, t) =
    normalize_string(s, stripmark=true) == normalize_string(t, stripmark=true)

Dzięki temu powyższy przykład działa poprawnie. Dodatkowo działa dobrze nawet ze znakami Unicode spoza ASCII.

julia> equals_ignore_mark("resume", "résumé")
true

julia> equals_ignore_mark("αβγ", "ὰβ̂γ̆")
true


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow