Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 排序字符串时忽略字符重音_String_Go_Unicode String - Fatal编程技术网

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

String 排序字符串时忽略字符重音,string,go,unicode-string,String,Go,Unicode String,我正在编写一个golang程序,它获取一个字符串列表,并按字符串的第一个字符将它们排序到桶列表中。但是,我希望它将重音字符与它最相似的非重音字符分组。因此,如果我有一个存储字母a的桶,那么我希望包含以Á开头的字符串 Go是否有任何内置的功能来确定这一点,或者我最好的选择是只使用一个包含所有字符及其重音变体的大型switch语句?看起来有一些插件包用于此。这里有一个例子 package main import ( "fmt" "golang.org/x/

我正在编写一个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]
此外,请查看以下有关文本规范化的参考资料:

祝您的switch语句好运!每个字符都有无数的变化(超过一百个),Unicode也在不断发展!最重要的是,有组合口音给无限的可能性。