常用的字符串处理函数:在对字符串进行处理时,需要先导入包"strings"
(1)Join():字符串的拼接,将切片slice中的元素,通过'#'连接起来
slice := []string{"aaa","bbb","ccc"}
str := strings.Join(slice, "#")
fmt.Println(str)
(2)Split():字符串的分割,把str字符串以'#'分割,返回是切片[aa bb cc dd ee]
str := "aa#bb#cc#dd#ee"
slice := strings.Split(str,"#")
fmt.Println(slice)
(3)Contains():str2是否在str1中出现,返回值 bool类型
str1 := "I love you"
str2 := "love"
b := strings.Contains(str1,str2)
(4)Index():查找str2在str1中第一次出现的位置,找到返回对应的下标,找不到返回-1
str1 := "I love you"
str2 := "u"
i := strings.Index(str1,str2)
fmt.Println(i)
(5)Repeat():将一个字符串重复n次,最后返回重复的字符串
str := "love"
str1 := strings.Repeat(str,6)
fmt.Println(str1)
(6)Replace(str, old, new n):在str字符串中,把old字符串替换为new字符串,n表示替换的次数,小于0表示全部替换
str := "不要跟我习习哈哈,严肃点,好好学习"
str1 := strings.Replace(str,"习","*",2)
fmt.Println(str1)
(7)Trim():去除字符串str头部和尾部指定的字符串
str := "====a===u=ok===="
str1:= strings.Trim(str,"=")
fmt.Println(str1) 打印结果:a===u=ok
(8)Fields():去除字符串str头部和尾部的空格,再按照空格分割字符串,返回切片
str := " are you ok "
// 一般用于统计单词个数
slice := strings.Fields(str)
fmt.Println(slice) 打印结果:[are you ok]
字符串转换成其他数据类型:GO语言也提供了字符串与其它类型之间相互转换的函数,相应的字符串转换函数都在包"strconv"
(1)Format系列函数把其他类型的转换为字符串
FormatBool():布尔值转字符串
str1 := strconv.FormatBool(true)
FormatInt():整形转字符串(n可以是:2,8,10,16,对应转换成二进制,八进制,十进制,十六进制所对应的字符串)
str2 := strconv.FormatInt(120, n)
FormatFloat():浮点型转字符串(f->打印方式,以小数方式;4->指保留小数点后位数;64->以float64处理)
str3:= strconv.FormatFloat(3.14159, 'f', 4, 64)
strconv.Itoa():将常量转成字符串
str4 := strconv.Itoa(123)
打印值:fmt.Println(str3)
打印类型:fmt.Printf("%T\n",str3)
(2)Parse 系列函数把字符串转换为其他类型
ParseBool():字符串转布尔
b,err := strconv.ParseBool("true")
if err!=nil {
fmt.Println("类型转换出错")
}else {
fmt.Println(b)
fmt.Printf("%T\n",b)
}
ParseInt():字符串转整型
v,err := strconv.ParseInt("abc",16,64)
ParseFloat():字符串转浮点型
v,_ := strconv.ParseFloat("3.14159",64)
strconv.Atoi():字符串转常量
v,_:=strconv.Atoi("123")
(3)Append系列函数将布尔/整数/浮点型等转换为字符串后,添加到切片中
slice := make([]byte, 0, 1024)
slice = strconv.AppendBool(slice, false)
slice = strconv.AppendInt(slice, 123, 2)
slice = strconv.AppendFloat(slice, 3.14159, 'f', 4, 64)
slice = strconv.AppendQuote(slice, "hello")
fmt.Println(string(slice))