lei*_*lin 20 sorting string byte go
某些函数可以对字符串或[]字节进行排序:
"bcad" to "abcd"
or
[]byte("bcad") to []byte("abcd")
Run Code Online (Sandbox Code Playgroud)
字符串只有字母.
如果是字母和数字?
我找到了排序包但不是想要的功能.
谢谢.
def*_*ode 30
为每个角色创建一个字符串对Join他们来说是浪费.
这是一个浪费少一点,但锅炉板更多.游乐场:// XEckr_rpr8
type sortRunes []rune
func (s sortRunes) Less(i, j int) bool {
return s[i] < s[j]
}
func (s sortRunes) Swap(i, j int) {
s[i], s[j] = s[j], s[i]
}
func (s sortRunes) Len() int {
return len(s)
}
func SortString(s string) string {
r := []rune(s)
sort.Sort(sortRunes(r))
return string(r)
}
func main() {
w1 := "bcad"
w2 := SortString(w1)
fmt.Println(w1)
fmt.Println(w2)
}
Run Code Online (Sandbox Code Playgroud)
Fer*_* Á. 21
您可以将字符串转换为字符串切片,对其进行排序并将其转换回字符串:
package main
import (
"fmt"
"sort"
"strings"
)
func SortString(w string) string {
s := strings.Split(w, "")
sort.Strings(s)
return strings.Join(s, "")
}
func main() {
w1 := "bcad"
w2 := SortString(w1)
fmt.Println(w1)
fmt.Println(w2)
}
Run Code Online (Sandbox Code Playgroud)
这打印:
bcad
abcd
Run Code Online (Sandbox Code Playgroud)
试试看:http://play.golang.org/p/_6cTBAAZPb
nul*_*lne 14
有一种利用功能的简单方法sort.Slice:
package main
import (
"fmt"
"sort"
)
func main() {
s := []rune{'1', 'B', 'C', 'a', 'g', 'M', '9'}
sort.Slice(s, func(i int, j int) bool { return s[i] < s[j] })
fmt.Println(string(s))
}
Run Code Online (Sandbox Code Playgroud)
(游乐场)