package main import ( "fmt" "strconv" "strings" ) func main() { //1.len()统计字符长度 str := "hello" //golang中的编码统一为utf-8(ascii的字符(字母和数字)占一个字节,汉字占三个字节) fmt.Println(len(str)) //2.字符串遍历时,同时处理有中文的问题r:=[]rune() str2 := "2008!北京欢迎您!" r := []rune(str2) for i := 0; i < len(r); i++ { fmt.Printf("字符%d=%c\n", i, r[i]) } //3.字符串转整数:n,err := strconv.Atoi() n, err := strconv.Atoi("123456") //检验数字字符串转整数 if err != nil { fmt.Println("转换错误", err) } else { fmt.Println("转成的结果是", n) } //4.整数转字符串 str := strconv.Itoa() str3 := strconv.Itoa(123) fmt.Printf("str = %v, str = %T\n", str3, str3) //5.字符串转[]byte() var bytes = []byte("hello go") //字母编码 fmt.Printf("byte = %v\n", bytes) //6.ascii码 []byte转字符串 str4 := string([]byte{97, 98, 99}) //编码转字符 fmt.Println("str = ", str4) //7.十进制转2.8.16进制 str5 := strconv.FormatInt(123, 2) str6 := strconv.FormatInt(123, 8) str7 := strconv.FormatInt(123, 16) fmt.Println("123对应的二进制数是 ", str5) fmt.Println("123对应的八进制数是 ", str6) fmt.Println("123对应的十六进制数是 ", str7) //8.查找子串是否在指定的字符串中: strings.Contains("seafood", "foo") b := strings.Contains("seafood", "foo") //b返回布尔值 fmt.Println(b) //9.统计一个字符串中有几个指定的子串: strings.Count("ceheese", "e") num := strings.Count("ceheese", "e") //num返回e的个数 fmt.Println(num) //10.不区分大小写的字符串比较(==是区分字母大小写的): fmt.Println(string.EqualFold("abc", "Abc")) fmt.Println(strings.EqualFold("abc", "Abc")) //返回布尔值 fmt.Println("abc" == "ABC") //区分大小写的字符串比较,返回布尔值 //11.返回子串在字符串第一次出现的index值,如果没有返回-1: strings.Index("NLT_abc", "abc") str8 := strings.Index("NLT_abc", "abc") //返回首次出现的位置 str9 := strings.Index("NLT_abc", "A") fmt.Println(str8) fmt.Println(str9) //12.返回子串在字符串第一次出现的index值,如果没有返回-1: strings.LastIndex("NLT_abc_S", "S") str10 := strings.Index("NLT_abc_S", "T") //返回首次出现的位置 str11 := strings.Index("NLT_abc_S", "S") fmt.Println(str10) fmt.Println(str11) //13.将指定的几个子串替换成另一个子串:strings.Replace("go go hello", "go", "go语言", n) //n可以指定你希望替换几个,如果n=-1表示全部替换 str12 := strings.Replace("go go hello", "go", "go 语言", 2) fmt.Println(str12) //14.按照指定的某个字符,为分割标识,将一个字符串拆分成字符串数组:strings.Split("hello,world,lady", ",") str13 := strings.Split("hello,world,lady", ",") fmt.Println(str13) //15.字符串的字母进行大小写的转换:strings.ToLower() //strings.ToUpper() str14 := strings.ToLower("HeLlO, wOrLd") str15 := strings.ToUpper("StAr, GaZeR") fmt.Println(str14, str15) //16.将字符串左右两边的空格去掉:strings.TrimSpace("") str16 := strings.TrimSpace(" abc ") fmt.Println(str16) //17.将字符串左右两边指定的字符去掉:strings.Trim(),可同时去掉几种不同的字符 str17 := strings.Trim("!def!", "!") fmt.Println(str17) //18.将字符串左边的指定字符去掉:strings.TrimLeft() //将字符串右边的指定字符去掉:strings.TrimRight() str18 := strings.TrimLeft("!!!!ghi", "!") str19 := strings.TrimRight("jkl~~~", "~") fmt.Println(str18, str19) //19.判断字符串是否以指定的字符串开头/结束 strings.HasPrefix()/strings.HasSuffix() fmt.Println(strings.HasPrefix("star gazer", "s")) //true fmt.Println(strings.HasSuffix("star gazer", "r")) //true }