首頁 >後端開發 >Golang >go語言中split方法有什麼用

go語言中split方法有什麼用

青灯夜游
青灯夜游原創
2023-01-28 13:37:352753瀏覽

在go語言中,Split()方法用於分割字串,可以使用分隔符號將字串劃分為子字串列表,而子字串以切片的形式傳回。 Split()是strings套件的方法,使用前需要先匯入strings套件,使用語法為「strings.Split(待分割的字串, 分隔符號)」。

go語言中split方法有什麼用

本教學操作環境:windows7系統、GO 1.18版本、Dell G3電腦。

go語言split方法    

在 Go 中,Split() 函數(包含在 strings 套件中)使用分隔符號將字串分割為子字串清單。子字串以切片的形式傳回。

語法

需要匯入strings套件

strings.Split(s, sep)
參數 說明 備註
s 待分割的字串 字串類型的參數
sep 分隔符號

字串類型的參數

傳回值

傳回字串切片。

使用範例

Split()函數將字串根據分隔符號切割。切割後傳回字串切片,切片len和cap值等於原始字串中存在分隔符號的數量 1(僅在s不是空字串的情況下成立)。

package main

import (
	"fmt"
	"strings"
)

func main() {
	demo := "I&love&Go,&and&I&also&love&Python."
	string_slice := strings.Split(demo, "&")

	fmt.Println("result:",string_slice)
	fmt.Println("len:",len(string_slice))
	fmt.Println("cap:", cap(string_slice))
}

運行結果如下:

result: [I love Go, and I also love Python.]
len: 8
cap: 8

注意事項

#1. 當分隔符號不存在於原始字串中時

當分隔符號在原始字串中不存在的情況下,Split()函數僅將原始字串轉換成一個len和cap值都為1的字串切片。

package main

import (
	"fmt"
	"strings"
)

func main() {
	demo := "I love Go, and I also love Python."
	string_slice := strings.Split(demo, "&")

	fmt.Println("result:",string_slice)
	fmt.Println("len:",len(string_slice))
	fmt.Println("cap:", cap(string_slice))
}

運行結果如下:

result: [I love Go, and I also love Python.]
len: 1
cap: 1

2. 當分隔符號是空字串時

當分隔符號是空字串時,Split()函數將字串中的每一個字元分割成一個單獨的元素。

package main

import (
	"fmt"
	"strings"
)

func main() {
	demo := "Go"
	string_slice := strings.Split(demo, "")

	fmt.Println("result:",string_slice)
	fmt.Println("len:",len(string_slice))
	fmt.Println("cap:", cap(string_slice))
}

運行結果:

result: [G o]
len: 2
cap: 2

3. 參數都為空字串

當Split()函數的兩個參數都是空字串時(即s和sep都是空字串),Split()函數傳回一個len和cap值都為0的空字串切片。

package main

import (
	"fmt"
	"strings"
)

func main() {
	demo := ""
	string_slice := strings.Split(demo, "")

	fmt.Println("result:",string_slice)
	fmt.Println("len:",len(string_slice))
	fmt.Println("cap:", cap(string_slice))
}

執行結果:

result: []
len: 0
cap: 0

4. 當s為空字串,sep不為空字串時

不同於上一個場景,在這種情況下雖然得到的結果仍然是字串切片,但是字串切片的len和cap值是1(而不是像上一個場景中的值是0)。傳回的結果是包含一個空字串的字串切片。

package main

import (
	"fmt"
	"strings"
)

func main() {
	demo := ""
	string_slice := strings.Split(demo, "*")

	fmt.Println("result:",string_slice)
	fmt.Println("len:",len(string_slice))
	fmt.Println("cap:", cap(string_slice))

	element := string_slice[0]
	fmt.Printf("string_slice[0]:%s, type:%T, len():%d\n",
		element, element, len(element),)

	fmt.Println("element == \"\"?", element == "")
}

執行結果:

result: []
len: 1
cap: 1
string_slice[0]:, type:string, len():0
element == ""? true

5. 傳回的字串切片中不再包含分隔符號

##【相關推薦:

Go影片教學程式設計教學

以上是go語言中split方法有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn