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 函式,其中字串被分割,然後根據字元進行排序。因此,程式成功執行。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP