GO语言 关于字符串的一些函数

package main
import (
   "fmt"
   "strconv"
   "strings"
)
func main(){
   //统计字符串的长度,按字节len()
   //golang的编码同意为utf-8(ascii的字符(字母和数字)占一个字节,汉字占3个)
   str := "hello呗"
   fmt.Println("str len = ",len(str))

   str1 := "hello就是"
   //字符串遍历,同时处理中文的问题 r :=[]rune(str)
   r := []rune(str1)
   for i:= 0;i<len(r);i++ {
      fmt.Printf("字符=%c\n",r[i])
   }

   //字符串转整数:中文不能转为整数,会报错
   n,err := strconv.Atoi("123")
   if err != nil {
      fmt.Println("转换错误:",err)
   }else{
      fmt.Println("结果是:",n)
   }
   //整数转字符串
   str = strconv.Itoa(123)
   fmt.Printf("str= %v,str=%T\n",str,str)//str= 123,str=string

   //当字符串要存入二进制文件的时候,就要将字符串转为byte切片
   b := []byte("hello")
   fmt.Printf("byte = %v\n",b)//byte = [104 101 108 108 111]
   //byte转字符串:
   str = string([]byte{104,105})
   fmt.Printf("str=%v\n",str)//str=hi

   //十进制转2,8,16进制,结果是:
   //2进制是1111011
   //16进制是:7b
   str = strconv.FormatInt(123,2)
   fmt.Printf("2进制是%v\n",str)
   str = strconv.FormatInt(123,16)
   fmt.Printf("16进制是:%v\n",str)

   //查找子串是否在指定的字符串中,结果为true或者false
   k := strings.Contains("hello","he")
   fmt.Printf("k=%v\n",k)

   //统计一个字符串中有几个字串‘
   n = strings.Count("hello","he")
   fmt.Printf("数量是:%v\n",n) //数量是:1

   //比较字符串
   //'==' 是区分字母大小写的
   s1 := "123h"
   s2 := "123H"
   fmt.Printf("结果是%v\n",s1==s2)//结果是false
   //比较字符串不区分大小写
   s := strings.EqualFold("abc","Abc")
   fmt.Printf("结果=%v\n",s)  //结果=true

   //返回子串在字符串第一次出现的index值,没有就返回1
   index := strings.Index("hello","l")
   fmt.Printf("index=%v\n",index) ///index=2

   //返回子串在字符串最后一次出现的位置
   index = strings.LastIndex("hello","l")
   fmt.Printf("index=%v\n",index) ///index=2

   //子串替换,1是换一个,2是换两个,-1是全部都换
   str =strings.Replace("hello go go","go","world",1)
   fmt.Printf("str=%v",str)

   //按照指定字符将字符串分割成数组
   /*
   str[0]=hello
   str[1]=world
   str[2]=go
   strArr=[hello world go]

   */
   strArr :=strings.Split("hello,world,go",",")
   for i := 0; i<len(strArr); i++{
      fmt.Printf("str[%v]=%v\n",i,strArr[i])
   }
   fmt.Printf("strArr=%v\n",strArr)

   //字符串大小写转换
   str = "golang Hello"
   str = strings.ToLower(str) //转换为小写
   str = strings.ToUpper(str) //转换为大写
   fmt.Println(str)

   //将字符串左右两边的空格去掉
   str = strings.TrimSpace("  hello  ")
   fmt.Printf("str=%v\n",str)

   //将字符串左右两边的指定字符去掉
   str = strings.Trim("!hello!","!")
   fmt.Printf("str=%v\n",str)

   //将字符串左边指定的字符去掉
   str = strings.TrimLeft("!hello!","!")
   fmt.Printf("str=%v\n",str)

   //将字符串右边指定的字符串去掉
   str = strings.TrimRight("!hello!","!")
   fmt.Printf("str=%v\n",str)

   //判断字符串是否以指定的字符串开头
   a := strings.HasPrefix("ftp://197","ftp")
   fmt.Println(a)

   //判断字符串是否以指定的字符串结束
   a =strings.HasSuffix("a.jpg","jpg")
   fmt.Println(a)

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值