字符串常用函数
func main() {
a := "hello worldeee"
fmt.Println(strings.Contains(a, "h")) // h是否存在于a
s := []string{"123", "456"}
fmt.Println(strings.Join(s, "")) // 将切片用控制串拼接
fmt.Println(strings.Index(a, "q")) // q在字符串的索引,没有就是 -1
fmt.Println(strings.Repeat("abc", 10)) // 重复abc 10次
fmt.Println(strings.Replace(a, "e", "l", 1)) // 替换1次,用l替换a中的e;负数次数为全部替换
b := "111-222-333"
fmt.Println(strings.Split(b, "-")) // 用-分割b,为切片
fmt.Printf("%T\n", strings.Split(b, "-")) // []string
c := " 111 11 "
fmt.Println(strings.Trim(c, " ")) // 去除两端的空格字符
fmt.Println(strings.Fields(c)) // 去除字符串中的空格,转为切片,统计单词的个数
}
字符串类型转换
func main() {
a := "hello worldeee"
s := []byte(a)
fmt.Println(s) // [104 101 108 108 111 32 119 111 114 108 100 101 101 101]
s1 := []byte{1, 97, 97}
a1 := string(s1)
fmt.Println(s1)
fmt.Println(a1) // aa
// 转为字符串
fmt.Println(strconv.FormatBool(false)) // false
fmt.Printf("%T\n", strconv.FormatBool((true))) // string
fmt.Println(strconv.FormatInt(120, 10)) // 把 120 转为 10进制的字符串
fmt.Println(strconv.FormatFloat(1.22, 'f', 3, 32)) // 1.22 3为小数
fmt.Println(strconv.Itoa(111)) // 把整数转为字符串
// 字符串转为其他类型
b, err := strconv.ParseBool("true") // 字符串转为bool
if err != nil {
fmt.Println(err)
} else {
fmt.Println(b)
}
fmt.Println(strconv.ParseInt("123", 10, 64)) // 字符串转为整型 123 <nil>
fmt.Println(strconv.ParseFloat("3.11111", 64)) // 3.11111 <nil>
fmt.Println(strconv.Atoi("12345")) // 12345 <nil>
// 将其他类型转为字符串,添加到切片
s := make([]byte, 0, 1024)
s = strconv.AppendBool(s, false)
fmt.Println(s) // [102 97 108 115 101]
fmt.Println(string(s)) // false
s = strconv.AppendInt(s, 11111, 10)
fmt.Println(string(s)) // false11111
s = strconv.AppendFloat(s, 1.111, 'f', 3, 64)
fmt.Println(string(s)) // false111111.111
s = strconv.AppendQuote(s, "gogogo")
fmt.Println(string(s)) // false111111.111"gogogo"
}