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

本教學操作環境:windows7系統、GO 1.18版本、Dell G3電腦。
go語言split方法
在 Go 中,Split() 函數(包含在 strings 套件中)使用分隔符號將字串分割為子字串清單。子字串以切片的形式傳回。
語法
需要匯入strings套件
參數 | 說明 | 備註 |
s | 待分割的字串 | 字串類型的參數 |
sep | 分隔符號 | 字串類型的參數 |
傳回值
傳回字串切片。
使用範例
Split()函數將字串根據分隔符號切割。切割後傳回字串切片,切片len和cap值等於原始字串中存在分隔符號的數量 1(僅在s不是空字串的情況下成立)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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))
}
|
登入後複製
運行結果如下:
1 2 3 | result: [I love Go, and I also love Python.]
len: 8
cap: 8
|
登入後複製
注意事項
#1. 當分隔符號不存在於原始字串中時
當分隔符號在原始字串中不存在的情況下,Split()函數僅將原始字串轉換成一個len和cap值都為1的字串切片。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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))
}
|
登入後複製
運行結果如下:
1 2 3 | result: [I love Go, and I also love Python.]
len: 1
cap: 1
|
登入後複製
2. 當分隔符號是空字串時
當分隔符號是空字串時,Split()函數將字串中的每一個字元分割成一個單獨的元素。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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))
}
|
登入後複製
運行結果:
1 2 3 | result: [G o]
len: 2
cap: 2
|
登入後複製
3. 參數都為空字串
當Split()函數的兩個參數都是空字串時(即s和sep都是空字串),Split()函數傳回一個len和cap值都為0的空字串切片。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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))
}
|
登入後複製
執行結果:
4. 當s為空字串,sep不為空字串時
不同於上一個場景,在這種情況下雖然得到的結果仍然是字串切片,但是字串切片的len和cap值是1(而不是像上一個場景中的值是0)。傳回的結果是包含一個空字串的字串切片。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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 == "" )
}
|
登入後複製
執行結果:
1 2 3 4 5 | result: []
len: 1
cap: 1
string_slice[0]:, type:string, len():0
element == "" ? true
|
登入後複製
5. 傳回的字串切片中不再包含分隔符號
##【相關推薦:
Go影片教學、程式設計教學】
以上是go語言中split方法有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!