Golang 根据字符串首字符排序,要求顺序:特殊字符 > 数字 > 英文 > 中文按照拼音排序
目的:优先特殊字符,其次数字,然后英文,最后中文按照拼音排序
思路:创建一个用于中文字符排序的比较器 c := collate.New(language.Chinese, collate.Numeric)
代码示例
import (
"sort"
"golang.org/x/text/collate"
"golang.org/x/text/language"
)
// 该接口定义一个获取排序字段的函数
type SortByStringAble interface {
GetStrSortField() string
}
func SortByString[T SortByStringAble](list []T, sortType string) []T {
// 创建一个用于中文字符排序的比较器
c := collate.New(language.Chinese, collate.Numeric)
// 使用 sort.SliceStable 保持稳定排序
sort.SliceStable(list, func(i, j int) bool {
if sortType ==
Golang字符串排序:特殊字符优先,中文按拼音顺序

本文介绍如何使用Golang实现字符串排序,优先级为特殊字符>数字>英文>中文,中文部分按照拼音排序。通过collate包创建自定义比较器并提供代码示例和单元测试。
最低0.47元/天 解锁文章
366

被折叠的 条评论
为什么被折叠?



