string的基本用法(可以理解成特殊的slice)
字符串与字符 字符串遍历 切⽚是引⽤类型,字符串是值类型 示例代码:
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
s := "我爱Go语⾔"
fmt.Println(s)
fmt.Println("字节⻓度:", len(s))
fmt.Println("-------------------")
//获取字符串引⽤
for i, ch := range s {
fmt.Printf("%d:%c \n", i, ch)
}
fmt.Println("-------------------")
//遍历所有字节
for i, ch := range []byte(s) {
fmt.Printf("%d:%X \n", i, ch)
}
fmt.Println("字节⻓度:", len(s))
fmt.Println("-------------------")
//获取所有字符
//rune相当于go的char(字符型)
count := 0
for i, ch := range []rune(s) {
fmt.Printf("%d:%c \n", i, ch)
count++
}
fmt.Println("字符⻓度:", count)
fmt.Println("字符⻓度:", utf8.RuneCountInString(s))
fmt.Println("-------------------") }
strings包中的字符串处理函数
(⼀)、检索字符串
func Contains(s, substr string) bool 判断字符串s是否包含substr字符串 func ContainsAny(s, chars string) bool 判断字符串s是否包含chars字符串中的任⼀字符 func ContainsRune(s string, r rune) bool 判断字符串s是否包含unicode码值r func Count(s, sep string) int 返回字符串s包含字符串sep的个数 func HasPrefix(s, prefix string) bool 判断字符串s是否有前缀字符串prefix func HasSuffix(s, suffix string) bool 判断字符串s是否有后缀字符串suffix func Index(s, sep string) int 返回字符串s中字符串sep⾸次出现的位置 func IndexAny(s, chars string) int 返回字符串chars中的任⼀unicode码值r在s中⾸次出现的位置 func IndexByte(s string, c byte) int 返回字符串s中字符c⾸次出现位置 func IndexFunc(s string, f func(rune) bool) int 返回字符串s中满⾜函数f®==true字符⾸次出现的位置 func IndexRune(s string, r rune) int 返回unicode码值r在字符串中⾸次出现的位置 func LastIndex(s, sep string) int 返回字符串s中字符串sep最后⼀次出现的位置 func LastIndexAny(s, chars string) int 返回字符串s中任意⼀个unicode码值r最后⼀次出现的位置 func LastIndexByte(s string, c byte) int 返回字符串s中字符c最后⼀次出现的位置 func LastIndexFunc(s string, f func(rune) bool) int 返回字符串s中满⾜函数f®==true字符最后⼀次出现的位置
(⼆)、分割字符串:
func Fields(s string) []string 将字符串s以空⽩字符分割,返回⼀个切⽚ func FieldsFunc(s string, f func(rune) bool) []string 将字符串s以满⾜f®==true的字符分割,返回⼀个切⽚ func Split(s, sep string) []string 将字符串s以sep作为分隔符进⾏分割,分割后字符最后去掉sep func SplitAfter(s, sep string) []string 将字符串s以sep作为分隔符进⾏分割,分割后字符最后附上sep func SplitAfterN(s, sep string, n int) []string 将字符串s以sep作为分隔符进⾏分割,分割后字符最后附上sep,n决定返回的 切⽚数 func SplitN(s, sep string, n int) []string 将字符串s以sep作为分隔符进⾏分割,分割后字符最后去掉sep,n决定返回的 切⽚数
(三)、⼤⼩写转换:
func Title(s string) string 将字符串s每个单词⾸字⺟⼤写返回 func ToLower(s string) string 将字符串s转换成⼩写返回 func ToLowerSpecial(_case unicode.SpecialCase, s string) string 将字符串s中所有字符按_case指定的映射转换成⼩写返回 func ToTitle(s string) string 将字符串s转换成⼤写返回 func ToTitleSpecial(_case unicode.SpecialCase, s string) string 将字符串s中所有字符按_case指定的映射转换成⼤写返回 func ToUpper(s string) string 将字符串s转换成⼤写返回 func ToUpperSpecial(_case unicode.SpecialCase, s string) string 将字符串s中所有字符按_case指定的映射转换成⼤写返回
(四)、trim修剪函数:
func Trim(s string, cutset string) string 将字符串s中⾸尾包含cutset中的任⼀字符去掉返回 func TrimFunc(s string, f func(rune) bool) string 将字符串s⾸尾满⾜函数f®==true的字符去掉返回 func TrimLeft(s string, cutset string) string 将字符串s左边包含cutset中的任⼀字符去掉返回 func TrimLeftFunc(s string, f func(rune) bool) string 将字符串s左边满⾜函数f®==true的字符去掉返回 5、func TrimPrefix(s, prefix string) string 将字符串s中前缀字符串prefix去掉返回 func TrimRight(s string, cutset string) string 将字符串s右边包含cutset中的任⼀字符去掉返回 7、func TrimRightFunc(s string, f func(rune) bool) string 将字符串s右边满⾜函数f®==true的字符去掉返回 func TrimSpace(s string) string 将字符串s⾸尾空⽩去掉返回 func TrimSuffix(s, suffix string) string 将字符串s中后缀字符串prefix去掉返回
(五)、⽐较字符串
func Compare(a, b string) int 按字典顺序⽐较a和b字符串⼤⼩ func EqualFold(s, t string) bool 判断s和t两个utf8字符串是否相等,忽略⼤⼩写 func Repeat(s string, count int) string 将字符串s重复count次返回 func Replace(s, old, new string, n int) string 替换字符串s中old字符为new字符并返回,n<0是替换所有old字符串 func Join(a []string, sep string) string 将a中的所有字符串连接成⼀个字符串,使⽤字符串sep作为分隔符