Heim >Backend-Entwicklung >Golang >Wie entferne ich Akzente aus Zeichenfolgen in Go?

Wie entferne ich Akzente aus Zeichenfolgen in Go?

Susan Sarandon
Susan SarandonOriginal
2024-11-03 16:45:30754Durchsuche

How to Remove Accents from Strings in Go?

Go: Akzente aus Zeichenfolgen entfernen

In Go kann das Entfernen von Akzenten aus Zeichenfolgen mithilfe der Normalisierung und einer Entfernungsfunktion erreicht werden. Der folgende Ansatz nutzt das Runes-Paket in Go 1.5 oder höher:

<code class="go">import (
    "fmt"
    "runes"
    "code.google.com/p/go.text/transform"
    "code.google.com/p/go.text/unicode/norm"
)

func RemoveAccents(s string) string {
    t := transform.Chain(norm.NFD, runes.Remove(runes.In(unicode.Mn)), norm.NFC)
    result, _, _ := transform.String(t, s)
    return result
}

func main() {
    input := "résumé"
    fmt.Println(RemoveAccents(input)) // Output: resume
}</code>

Bei diesem Ansatz:

  1. Verwenden Sie die Normalisierungsform norm.NFD, um die Zeichenfolge in ihre umzuwandeln Vollständig zerlegte Form.
  2. Entfernen Sie Nicht-Leerzeichen (Akzente) mit runes.Remove(runes.In(unicode.Mn)).
  3. Konvertieren Sie die Zeichenfolge mithilfe von norm zurück in ihre zusammengesetzte Form. NFC.
  4. Gibt die transformierte Zeichenfolge ohne Akzente zurück.

Beachten Sie, dass für diesen Ansatz Go 1.5 oder höher erforderlich ist, wodurch das Runenpaket eingeführt wird.

Das obige ist der detaillierte Inhalt vonWie entferne ich Akzente aus Zeichenfolgen in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn