Golang strings 包常用字串操作函數

2020-10-29 12:01:03

目錄

1. func Contains

2. func HasPrefix

3. func HasSuffix

4. func Replace

5. func Split

6. func ToLower

7. func ToUpper

8. func Repeat


在編寫程式碼的時候最常用到的就是字串了,本篇文章將結合範例對常用的字串操作函數進行介紹。

1. func Contains

func Contains(s, substr string) bool

判斷 substr 是否是 s 的子串,例如:

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.Contains("Linux", "in"))
	fmt.Println(strings.Contains("Linux", "Unix"))
	fmt.Println(strings.Contains("Linux", ""))
	fmt.Println(strings.Contains("", ""))
}

輸出:

true
false
true
true

2. func HasPrefix

func HasPrefix(s, prefix string) bool

字串 s 是否以 prefix 為開頭,例如:

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.HasPrefix("Linux", "Lin"))
	fmt.Println(strings.HasPrefix("Linux", "in"))
	fmt.Println(strings.HasPrefix("Linux", ""))
}

輸出:

true
false
true

3. func HasSuffix

func HasSuffix(s, suffix string) bool

判斷字串 s 是否以 suffix 結尾,例如:

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.HasSuffix("Linux", "nux"))
	fmt.Println(strings.HasSuffix("Linux", "ix"))
	fmt.Println(strings.HasSuffix("Linux", ""))
}

輸出為:

true
false
true

4. func Replace

func Replace(s, old, new string, n int) string

返回 s 中前 n 個不重複的 old 子串替換為 new 子串的新字串,如果 n < 0 ,則替換所有 old 子串,例如:

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.Replace("Linux is very very very good!", "very", "much", 2))
	fmt.Println(strings.Replace("Linux is very very very good!", "very", "much", -1))
}

輸出為:

Linux is much much very good!
Linux is much much much good!

5. func Split

func Split(s, sep string) []string

返回將字串 s 按 sep子串分割的字串切片,sep 為空字串時,將 s 分割為每一個 unicode 碼值的字串切片。例如:

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.Split("Linux, Unix, Windows, Android", ", "))
	fmt.Println(strings.Split(" Linux is very very very good! ", " "))
}

輸出為:返回的是字串陣列。

[Linux Unix Windows Android]
[ Linux is very very very good! ]

6. func ToLower

func ToLower(s string) string

返回字串 s 中字母轉小寫的拷貝,例如:

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.ToLower("Linux, Unix, Windows, Android"))
	fmt.Println(strings.ToLower(" Linux is very very very good! "))
}

輸出為:

linux, unix, windows, android
 linux is very very very good!

7. func ToUpper

func ToUpper(s string) string

返回字串 s 中字母轉大寫的拷貝,例如:

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.ToUpper("Linux, Unix, Windows, Android"))
	fmt.Println(strings.ToUpper(" Linux is very very very good! "))
}

輸出為:

LINUX, UNIX, WINDOWS, ANDROID
 LINUX IS VERY VERY VERY GOOD! 

8. func Repeat

func Repeat(s string, count int) string

返回 count 個字串 s 相連線的字串,如果 count 為負數 或(len * s * count)的結果溢位,則報 panic 異常。例如:

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.Repeat("Linux", 6))
	fmt.Println(strings.Repeat("Linux", 0))
	fmt.Println(strings.Repeat("Linux", -1))
}

輸出為:

LinuxLinuxLinuxLinuxLinuxLinux

panic: strings: negative Repeat count

goroutine 1 [running]:
strings.Repeat(0x4bcf3d, 0x5, 0xffffffffffffffff, 0x1, 0x1)
        /usr/local/go/src/strings/strings.go:529 +0x5e5
main.main()
        /root/goProject/src/test/main.go:11 +0x167

參考連結:

https://golang.org/pkg/strings/