golang中常用的字符串操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | 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 } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析