字符串操作:
字符操作不会影响原字符串,如果处理后又返回给原字符串则会改变,但一般是使用新变量接收处理
len:统计字符串的长度,但如果有中文时会出现乱码的情况,转换为range可以解决
func main() {str := "English中文"fmt.Println("str的长度为:", len(str)) // 13,中文3个字节str2 := "English中文"for i := 0; i < len(str2); i++ {fmt.Println(str2[i]) // 这里是按照字节遍历的,结果是对应的ASCII表中的数字}str3 := "English中文"for i := 0; i < len(str3); i++ {fmt.Printf("%c", str3[i]) //这里是按照字符输出,就会乱码}str4 := "English中文"s := []rune(str4)for i := 0; i < len(s); i++ {fmt.Printf("%c", s[i]) //English中文}
}
查找子串是否在指定的字符串中:
func main() {fmt.Println(strings.Contains("itzhuzhu", "zhuzhu")) // truefmt.Println(strings.Contains("itzhuzhu", "Hello")) // false
}
统计一个字符串有几个指定的子串 :
func main() {fmt.Println(strings.Count("aaabbbccc", "abcabc")) // 0fmt.Println(strings.Count("aaabbbccc", "aaabbbccc")) //1
}
字符串比较(==是区分大小写,EqualFold是不区分大小写)
func main() {var x string = "ITzhuzhu"var y string = "itzhuzhu"fmt.Println(strings.EqualFold(x, y)) //truefmt.Println(x == y) //false
}
返回子串在字符串第一次出现的索引,如果没有则返回-1:
func main() {fmt.Println(strings.Index("ITzhuzhu", "I")) // 0fmt.Println(strings.Index("ITzhuzhu", "IT")) // 0fmt.Println(strings.Index("ITzhuzhu", "ITZ")) // -1fmt.Println(strings.Index("ITzhuzhu", "zhuzhu")) // 2
}
返回子串在字符串最后一次出现的索引,如果没有返回-1:
func main() {fmt.Println(strings.LastIndex("ITzhuzhu", "IT")) // 0fmt.Println(strings.LastIndex("ITzhuzhu", "zhu")) // 5fmt.Println(strings.LastIndex("ITzhuzhu", "u")) // 7
}
将指定的子串替换成另外一个子串:
func main() {// 参数1:字符串,参数2:要替换的字符串,参数3,替换后的字符串,参数4,替换几个,-1是全部,1是第一个,2是第二个,以此类推fmt.Println(strings.Replace("itzhuzhu", "z", "Z", 1)) // itZhuzhufmt.Println(strings.Replace("itzhuzhu", "z", "Z", -1)) // itZhuZhu
}
按照指定的某个字符,为分割标识,将一个字符串拆分为字符串数组
func main() {s := strings.Split("it,zhu,zhu", ",")fmt.Printf("%T,%v", s, s) // []string,[it zhu zhu]
}
将字符串的字母进行大小写的转换:
func main() {// ToLower:转为小写,ToUpper:转为大写fmt.Printf(strings.ToLower("ITZHUZHU\n")) // itzhuzhufmt.Printf(strings.ToUpper("itzhuzhu")) // ITZHUZHU
}
将字符串左右两边的空格去掉:
func main() {fmt.Printf(strings.TrimSpace(" IT ZHU ZHU ")) // IT ZHU ZHU 只能去掉两边的空格,中间的去不掉
}
将字符串左右两边指定的字符删除:
func main() {// 删除两边指定的字符 参数1:原字符串,参数2:要去掉的字符fmt.Println(strings.Trim("&%IT ZHU ZHU&%*(」", "&%*(」")) //IT ZHU ZHU// 删除左边指定的字符fmt.Println(strings.TrimLeft("&%IT ZHU ZHU&%*(」", "&%")) //IT ZHU ZHU&%*(」// 删除右边指定的字符fmt.Println(strings.TrimRight("&%IT ZHU ZHU&%*(」", "&%*(」")) //&%IT ZHU ZHU
}
判断字符串是否以指定的字符串开头: strings.HasPrefix(“ftp://192.168.10.1”, “ftp”) // true
func main() {// 判断是不是以www开头的,返回值是boolfmt.Println(strings.HasPrefix("www.itzhuzhu.com", "www.")) // true// 判断是不是com结尾fmt.Println(strings.HasSuffix("www.itzhuzhu.com", "www")) // falsefmt.Println(strings.HasSuffix("www.itzhuzhu.com", ".com")) // true
}