Go字符串常用函数
package main import ( "fmt" "strconv" "strings" ) /* 系统内置的String常用的函数 */ func main() { str :="这是一个字符串" fmt.Println(len(str))//输出8中文是按照字节来输出 //遍历带中文的字符串 str2 := []rune(str)//切片 遍历有中文的字符串需要先将字符串转为rune切片 for i:=0;i<len(str2);i++ { fmt.Printf("字符=%c\n",str2[i]) } //数字字符串转为int类型 strInt:="123" n,error:=strconv.Atoi(strInt) if error !=nil{ fmt.Println("转换错误",error) }else{ fmt.Println(n)//现在就是转换为int类型了 } //int类型转为字符串 num :=123 intStr :=strconv.Itoa(num) fmt.Printf("inetStr类型是:%T%v\n",intStr,intStr) //字符串转为[]byte bytes :=[]byte( "转为byte类型") fmt.Println(bytes)//这样就是输出对应的阿斯克码 //[]byte转字符串 byteStr :=string([]byte{97,98,99}) fmt.Println(byteStr) //十进制转为2,8,16进制的字符串 str = strconv.FormatInt(123,2) fmt.Printf("123对应的2进制:%v\n",str) //查找字符串中是否包含某个值 strVal :="查找字符串" b:=strings.Contains(strVal,"字") if b{ fmt.Println("b字符串包含字",b) } //统计字符串中有几个指定的值 strVal2 :="aaacgv" num2 :=strings.Count(strVal2,"a") fmt.Printf("strval2中包含%v个a\n",num2) //字符串比较 如果用==是区分大小写的,strings.EqualFold是不区分大小写 judge :=strings.EqualFold("GO","go") fmt.Println(judge) //判断字符串中子字符串出现的位置 等于js中的 indexOf index :=strings.Index("chicken","n")//返回结果和js一样没有找到就是-1 fmt.Println(index) //判断字符串中子字符串最后出现的位置 index1 :=strings.LastIndex("chicken","c") fmt.Println(index1) //将字符串中指定的值替换为其他值 str = strings.Replace("oink oink oink","o","s",-1)//strings.Replace(字符串,指定值,替换为,(-1:是全部 1:是一个)) fmt.Println(str) //字符串分隔为数组 与js中的split一样 strArr := strings.Split("a,b,v,b",",") fmt.Printf("%v\n",strArr) //将字符串中的值进行大小写转换 str = "Hello" //str3 := strings.ToLower(str)//转小写 str3 := strings.ToUpper(str)//转大写 fmt.Println(str3) //去除字符串首尾空格 跟PHP trim一样 str = " hello " str = strings.TrimSpace(str) fmt.Printf("%q\n",str) //字符串首尾指定字符去除 str ="! hello! " //str= strings.Trim(str,"! ") //str =strings.TrimLeft(str,"!")//去除字符串左边指定字符 str =strings.TrimRight(str," ")//去除字符串右边边指定字符 fmt.Printf("%q\n",str) //判断字符串是否以指定字符开头 a := strings.HasPrefix(str,"!") a = strings.HasSuffix(str,"!")//判断是否以指定字符结尾 fmt.Println(a) }