字符串
UTF-8编码
Go语言默认使用UTF-8编码,Go语言不支持字符类型,所有字符值都转换为对应的编码表中int32值。
案例,strings包中常用函数:
package main
import (
"fmt"
"strings"
)
func main() {
// 常用函数
str := "mis张mis张"
fmt.Println("第1次出现的索引位置:", strings.Index(str, "i"))
fmt.Println("最后1次出现的索引位置:", strings.LastIndex(str, "i"))
fmt.Println("是否以指定内容开头:", strings.HasPrefix(str, "mis"))
fmt.Println("是否以指定内容结尾:", strings.HasSuffix(str, "张"))
fmt.Println("是否包含指定字符:", strings.Contains(str, "张"))
fmt.Println("转小写:", strings.ToLower(str))
fmt.Println("转大写:", strings.ToUpper(str))
fmt.Println("字符串替换:", strings.Replace(str, "m", "k", -1))
fmt.Println("字符串重复多少遍:", strings.Repeat(str, 2))
fmt.Println("字符串去掉前后指定字符:", strings.Trim(str, " "))
fmt.Println("拆分成切片:", strings.Split(str, "张"))
arr1 := []string{"mis", "张"}
fmt.Println("合并成字符串:", strings.Join(arr1, ""))
}
案例,字符串截取:
package main
import "fmt"
func main() {
str := "mis张"
a1 := str[0]
fmt.Println("a1=", a1) // a1= 109
fmt.Printf("%T\n", a1) // uint8
b1 := fmt.Sprintf("%c", a1)
fmt.Println("b1=", b1) // b1= m
fmt.Printf("%T\n", b1) // string
// 变量名[n:m],取出大于等于n小于m的字符序列
// 当n和m省略时,认为n为0,m为长度;
fmt.Println(len(str)) // 6
fmt.Println(str[1:5]) // is??
fmt.Println(str[:2]) // mi
fmt.Println(str[3:]) // 张
// 通过 for range遍历
for i, s := range str {
fmt.Println(i, "-----", s)
}
}
案例,字符串拼接:
package main
import (
"fmt"
"strings"
)
func main() {
// 字符串拼接
a1 := "hello "
a2 := "word~"
// 拼接1
s1 := a1 + a2
fmt.Println(s1)
// 拼接2
s2 := fmt.Sprintf("%s%s", a1, a2)
fmt.Println(s2)
// 拼接3
var s3 []string = []string{a1, a2}
fmt.Println(strings.Join(s3, ""))
}