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

go語言中split方法有什麼用

青灯夜游
發布: 2023-01-28 13:37:35
原創
3001 人瀏覽過

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

go語言中split方法有什麼用

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

go語言split方法    

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

語法

需要匯入strings套件

1

strings.Split(s, sep)

登入後複製
參數說明備註
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))

}

登入後複製

執行結果:

1

2

3

result: []

len: 0

cap: 0

登入後複製

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中文網其他相關文章!

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板