Ignorer les accents de caractères lors du tri des chaînes


Nairou

J'écris un programme golang, qui prend une liste de chaînes et les trie dans des listes de seaux par le premier caractère de la chaîne. Cependant, je veux qu'il regroupe les caractères accentués avec le caractère non accentué auquel il ressemble le plus. Donc, si j'ai un seau pour la lettre A, alors je veux que les chaînes commençant par Á soient incluses.

Go a-t-il quelque chose de intégré pour déterminer cela, ou est-ce que mon meilleur pari est d'avoir simplement une grande instruction de commutation avec tous les caractères et leurs variations accentuées?

Eve Freeman

On dirait qu'il existe des packages supplémentaires pour cela. Voici un exemple ...

package main

import (
   "fmt"
   "code.google.com/p/go.text/collate"
   "code.google.com/p/go.text/language"
)

func main() {
   strs := []string{"abc", "áab", "aaa"}
   cl := collate.New(language.En)
   cl.SetOptions(collate.Loose)
   cl.SortStrings(strs)
   fmt.Println(strs) 
}

les sorties:

[aaa áab abc]

Consultez également la référence suivante sur la normalisation du texte: http://blog.golang.org/normalization

Articles connexes


Java. Ignorer les accents lors de la comparaison de chaînes

vers l'avant: Le problème est simple. Existe-t-il une fonction dans JAVA pour comparer deux chaînes et retourner true en ignorant les caractères accentués? c'est à dire String x = "Joao"; String y = "João"; retour qui sont égaux. Merci DaveJohnston: Je pense