Golang 字符串排序程序

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函数,将字符串进行拆分,然后根据字符进行排序。因此,程序执行成功。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程