Go語言字串排序程式


Go語言中的字串是字元的集合。由於Go語言中的字串是不可變的,因此一旦生成就不能修改。但是,可以透過連線或新增到現有字串來建立新字串。字串型別是Go語言中內建的一種型別,可以像其他任何資料型別一樣以多種方式使用。在本文中,我們將學習使用不同的示例來學習排序字串的不同技術。

語法

func Split(str, sep string) []string

Split() 函式用於透過提供的分隔符分割字串。此函式存在於 strings 包中,它接受要分割的字串以及分隔符作為引數。然後,該函式返回最終的字串陣列作為結果。

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 函式,其中字串被分割,然後根據字元進行排序。因此,程式成功執行。

更新於:2023年2月13日

5K+ 瀏覽量

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.