我正在编写一个golang程序,它接受一个字符串列表,并按字符串的第一个字符将它们分类到存储桶列表中。但是,我希望它能够使用最类似的非重音字符对重音字符进行分组。所以,如果我有一个字母A的桶,那么我想要包含以Á开头的字符串。
Go是否有任何内置功能可以确定这一点,或者我最好选择包含所有字符及其重音变体的大型switch语句?
答案 0 :(得分:7)
看起来有一些插件包。这是一个例子......
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)
}
输出:
[aaa áab abc]
另外,请查看以下有关文本规范化的参考:http://blog.golang.org/normalization