GO–字符串(常用字符串函数)
-
len(str):用于统计字符串的长度
-
package main import ( "fmt" ) func main() { // 用于统计字符串的长度,按字节统计len(str) // golang的编码统一为utf-8 (字母和数字占用一个字节,汉子占用三个字节) str := "hello" fmt.Println("str=", len(str))//5 }
-
-
r := []rune(str):用于处理字符串遍历时出现中文的问题
-
package main import ( "fmt" ) func main() { str2 := "hello北京" // 字符串遍历,同时处理有中文的问题 r := []rune(str) r := []rune(str2) for i := 0; i < len(r); i++ { fmt.Printf("字符=%c\n", r[i]) } }
-
-
字符串转整数:n, err := strconv.Atoi(“12”)
-
package main import ( "fmt" ) func main() { // 字符串转整数: n, err := strconv.Atoi("12") // 此处接收到的数据为数字时,转换正常,当包含有非数字时将出现错误提示 n, err := strconv.Atoi("123") if err != nil { fmt.Println("转换错误", err) } else { fmt.Println("转成的结果是:", n) } }
-
-
整数转字符串:str = strconv.Itoa(12345)
-
package main import ( "fmt" ) func main() { // 整数转字符串 str= strconv.Itoa(1234) str = strconv.Itoa(123) fmt.Printf("str=%v,str=%T", str, str)//str=123,str=string }
-
-
字符串转 []byte切片:var bytes = []byte(“hello go”)
-
var bytes = []byte("hello go") fmt.Printf("bytes=%v\n", bytes)//[104 101 108 108 111 32 103 111]
-
-
[]byte 转字符串:str = string([]byte{97,98,99})
-
var strr = string([]byte{97, 98, 99}) fmt.Printf("strr=%v\n", strr)//strr=abc
-
-
10进制转 2,8, 16进制:str = strconv.FormatInt(123, 2)
-
str = strconv.FormatInt(123, 2) fmt.Printf("123对应的2进制是%v\n", str)//123对应的2进制是1111011 str = strconv.FormatInt(123, 16) fmt.Printf("123对应的16进制是%v\n", str)//123对应的2进制是1111011
-
-
查找子串是否在指定的字符串中:strings.Contains(“seafood”, “foo”)
-
b := strings.Contains("seafood", "foo") fmt.Printf("b=%v\n", b)//b=true
-
-
统计一个字符串有几个指定的子串:strings.Count(“ceheese”, “e”)
-
num=1num := strings.Count("ceheese", "se") fmt.Printf("num=%v\n", num)//num=1
-
-
不区分大小写的字符串比较(==是区分字母大小写的):fint.Println(strings.EqualFold(“abc”,“ABC”))
-
b = strings.EqualFold("abc", "ABC") fmt.Printf("b=%v\n", b)//b=true
-
-
返回子串在字符串第一次出现的index值, 如果没有返回-1:strings.Index(“124dsg”,“d”)
-
index := strings.Index("asfdjalk", "d") fmt.Printf("index=%v\n", index)//index=3
-
-
返回子串在字符串最后一次出现的index值, 如果没有返回-1:strings.LastIndex(“124dsgdrdrd”,“d”)
-
index11 := strings.LastIndex("124dsgdrdrd", "d") fmt.Printf("index11=%v\n", index11) //index11=10
-
-
将指定的子串替换成 另一个子串: strings.Replace(“go go hello”, “go”, “go语言”,n):n可以指定用户希望替换几个,如果n= -1 将表示全部替换
-
index223 := strings.Replace("go go hello", "go", "go语言", 1) fmt.Printf("index223=%v\n", index223)//index223=go语言 go hello
-
-
按照指定的某个字符,为分割标识,将一个字符串拆分成字符串数组:strings.Split(“hello,world,ok,no,yes”,",")
-
strArr := strings.Split("hello,world,ok,no,yes", ",") fmt.Printf("strArr=%v\n", strArr)//strArr=[hello world ok no yes]
-
-
将字符串的字母进行大小写的转换:strings.ToLower(“Go”)
-
str = strings.ToLower("Go") fmt.Printf("str=%v\n", str)//str=go
-
-
将字符串左右两边的空格去除:strings.TrimSpace(" tn a lone good noe ")
-
str123 := strings.TrimSpace(" tn a lone good noe ") fmt.Printf("str123=%v\n", str123)//str123=tn a lone good noe
-
-
将字符串左右两边指定的字符去除:strings.Trim("! tn a lone good noe! “,”!")
-
str234 := strings.Trim("! tn a lone good noe! ", "!") fmt.Printf("str234=%v\n", str234) //str234= tn a lone good noe!
-
-
将字符串左右两边指定的字符去除:strings.TrimLeft("! tn a lone good noe!!","!")
-
str345 := strings.TrimLeft("! tn a lone good noe!!", "!") fmt.Printf("str345=%v\n", str345)//str345= tn a lone good noe!!
-
-
将字符串左右两边指定的字符去除:strings.TrimRight("! tn a lone good noe!!","!")
-
str456 := strings.TrimRight("! tn a lone good noe!!", "!") fmt.Printf("str456=%v\n", str456)//str456=! tn a lone good noe
-
-
判断字符串是否以指定的字符串开头:strings.HasPrefix(“asdfjalkf”,“as”)
-
str44 := strings.HasPrefix("asdfjalkf", "as") fmt.Printf("str44=%v\n", str44)//str44=true
-
-
判断字符串是否以指定的字符串结束:strings.HasSuffix(“asdfjalkf”,“as”)
-
str45 := strings.HasSuffix("asdfjalkf", "as") fmt.Printf("str45=%v\n", str45)//str45=false
-