Golang 字符串排序程序
Golang中的字符串是字符的集合。由于Go中的字符串是不可变的,一旦生成后就不能修改。然而,可以通过对现有字符串进行连接或添加来创建新的字符串。作为Go中的内置类型,字符串类型可以像其他数据类型一样以多种方式使用。在本文中,我们将通过不同的示例来学习使用不同的技术对字符串进行排序。
语法
func Split(str, sep string) []string
Split()函数用于通过提供的分隔符对字符串进行拆分。该函数存在于字符串包中,并接受要拆分的字符串作为参数以及一个分隔符。然后,该函数会将最终的字符串数组作为结果返回。
func Strings(src []string) []string
strings函数定义在sort包中。这个函数接收我们希望排序的字符串格式的数组,并通过对该数组进行排序来返回结果。
步骤
- 步骤1 - 创建一个主包main,并声明fmt(格式化包)、sort和strings包
-
步骤2 - 开始main函数
-
步骤3 - 将字符串拆分为单个字符
-
步骤4 - 使用内部函数对字符进行排序,并将它们组合成字符串
-
步骤5 - 打印输出结果
示例1
在这个示例中,我们将使用sort.Slice函数来排序未排序的字符串。控制台上打印的输出将是一个排序后的字符串。让我们通过代码和算法来了解如何执行这个程序。
package main
import (
"fmt"
"sort" //import fmt and sort package
)
//create main function to execute the program
func main() {
unsorted_str := "ghfisaw" //create unsorted string
fmt.Println("The unsorted string is:", unsorted_str)
chars := []rune(unsorted_str)
sort.Slice(chars, func(i, j int) bool { //sort the string using the function
return chars[i] < chars[j]
})
fmt.Println("The sorted string is:")
fmt.Println(string(chars)) //print the string on the console
}
输出
The unsorted string is: ghfisaw
The sorted string is:
afghisw
示例2
在这个示例中,我们将看到如何使用sort.Slice函数对字符串进行排序。在这里,未排序的字符串将被转换为rune,并作为输入传递给sort.Slice函数来排序字符串。
package main
import (
"fmt"
"sort" //import fmt and sort package
)
//create a main function to execute the program
func main() {
unsorted_str := "dbl" //create an unsorted string
fmt.Println("The unsorted string created here is:", unsorted_str)
strrunes := []rune(unsorted_str) //convert the string to rune
sort.Slice(strrunes, func(i, j int) bool {
return strrunes[i] < strrunes[j] //sort the string rune
})
fmt.Println("The sorted string is:")
fmt.Println(string(strrunes)) //print sorted string
}
输出
The unsorted string created here is: dbl
The sorted string is:
bdl
示例3
在这个示例中,我们将使用strings.split函数和sort.Strings对字符串进行排序。前者用于拆分字符,后者用于排序字符。输出将使用fmt.Println()函数打印在控制台上。
package main
import (
"fmt"
"sort"
"strings" //import fmt, sort and strings package
)
//create a main function to execute the program
func main() {
unsorted_str := "kertgld" //create an unsorted string
fmt.Println("The unsorted string created here is:", unsorted_str)
chars := strings.Split(unsorted_str, "") //split the string into characters
sort.Strings(chars) //sort the characters
fmt.Println("The sorted string formed here is:")
fmt.Println(strings.Join(chars, "")) //join the characters and print on console
}
输出
The unsorted string created here is: kertgld
The sorted string formed here is:
degklrt
结论
我们分别使用三个示例来执行了排序字符串的程序。在第一个示例中,我们使用sort.Slice()函数对字符串进行排序;在第二个示例中,我们将未排序的字符串转换为rune,然后在其上应用sort.Slice()函数;在第三个示例中,我们使用了sort.Strings和strings.Split函数,将字符串进行拆分,然后根据字符进行排序。因此,程序执行成功。