问题:在golang中如何对一个字符串,例如"dcdea",进行内部排序,变成"acdde"?
解决方法:
package main
import (
"fmt"
"sort"
)
func main () {
str := "dcdea汉字"
runeArr := []rune(str)
sort.Slice(runeArr, func(i, j int) bool {
return runeArr[i] < runeArr[j] // 正序
})
str = string(runeArr)
fmt.Println(str)
}
输出:
acdde字汉
原理简介:
string类型可以认为是只读的byte数组
rune类型是int32的alias,存储Unicode码点
func Slice(x any, less func(i, j int) bool)是sort包提供的对Slice的排序函数,传入一个任意类型的Slice和一个比较函数less
本文介绍了在Golang中如何对字符串进行内部排序,通过将字符串视为Unicode码点的数组,利用sort包提供的函数,结合自定义比较函数,将字符串'dcdea'排序为'acdde'。
3万+

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



