忽略字符重音排序字符串

9

我正在编写一个golang程序,它将一个字符串列表按照字符串的首字母分类到桶列表中。但是,我希望它将重音字符与最相似的非重音字符分组。因此,如果我有一个以A开头的桶,那么我希望以Á开头的字符串也被包括在内。

Go语言是否有内置的方法来确定这个问题,或者我最好使用一个包含所有字符及其重音变体的大型switch语句?


祝你的switch语句好运!每个字符都有无数变体(超过一百种),而Unicode不断发展!此外,还有组合重音提供无限可能性。 - fuz
1个回答

10

看起来有一些附加的软件包可以使用。这里是一个例子...

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]

此外,还请参考以下有关文本规范化的参考资料:http://blog.golang.org/normalization。需要说明的是,请不要修改任何HTML标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接