目錄
1. func Contains
2. func HasPrefix
3. func HasSuffix
4. func Replace
5. func Split
6. func ToLower
7. func ToUpper
8. func Repeat
9. func Count
10. func Index
在撰寫代碼的時候最常用到的就是字串了,Golang 中的字串統一使用 UTF-8 (屬于Unicode編碼的一種實作方式)進行編碼,本篇文章將結合具體實體對常用的字串操作函式進行介紹,
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
9. func Count
func Count(s, substr string) int
回傳字串 s 中包含的不重疊的子串 substr 個數,如果 substr 是一個空字串,則回傳1 + s中的Unicode代碼點數(Unicode 代碼點:可以簡單理解為一個符號便是一個代碼點),例如:
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(strings.Count("Golang Golang Golang", "Go"))
fmt.Println(strings.Count("Golang", ""))
fmt.Println(strings.Count("Golang語言", ""))
}
輸出為:
3
7
9
10. func Index
func Index(s, substr string) int
回傳字串 s 中包含的第一個子串 substr 的索引,如果不存在回傳 -1,例如:
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(strings.Index("Golang", "lang"))
fmt.Println(strings.Index("Golang", "Linux"))
}
輸出為:
2
-1
參考鏈接:
https://golang.org/pkg/strings/
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/196383.html
標籤:python
