我正在编写一个golang程序,它将一个字符串列表按照字符串的首字母分类到桶列表中。但是,我希望它将重音字符与最相似的非重音字符分组。因此,如果我有一个以A开头的桶,那么我希望以Á开头的字符串也被包括在内。
Go语言是否有内置的方法来确定这个问题,或者我最好使用一个包含所有字符及其重音变体的大型switch语句?
我正在编写一个golang程序,它将一个字符串列表按照字符串的首字母分类到桶列表中。但是,我希望它将重音字符与最相似的非重音字符分组。因此,如果我有一个以A开头的桶,那么我希望以Á开头的字符串也被包括在内。
Go语言是否有内置的方法来确定这个问题,或者我最好使用一个包含所有字符及其重音变体的大型switch语句?
看起来有一些附加的软件包可以使用。这里是一个例子...
package main
import (
"fmt"
"golang.org/x/text/collate"
"golang.org/x/text/language"
)
func main() {
strs := []string{"abc", "áab", "aaa"}
cl := collate.New(language.English, collate.Loose)
cl.SortStrings(strs)
fmt.Println(strs)
}
输出:
[aaa áab abc]