排序字符串时忽略字符重音

时间:2014-01-02 22:27:28

标签: string go unicode-string

我正在编写一个golang程序,它接受一个字符串列表,并按字符串的第一个字符将它们分类到存储桶列表中。但是,我希望它能够使用最类似的非重音字符对重音字符进行分组。所以,如果我有一个字母A的桶,那么我想要包含以Á开头的字符串。

Go是否有任何内置功能可以确定这一点,或者我最好选择包含所有字符及其重音变体的大型switch语句?

1 个答案:

答案 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