码迷,mamicode.com
首页 > 其他好文 > 详细

字符串函数

时间:2019-08-14 23:37:25      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:意思   dex   count   二进制   else   itoa   jpg   区分大小写   ati   

字符串中常用的函数:

字符串在我们程序开发中,使用的非常多的,常用的函数我们需要掌握:

1)统计字符串的长度,按字节len(str)

func main() {
  //golang的编码统一为UTF-8的(ascii码的字符(数字和字母) 占一个字节,汉字占用3个字节 )
  str := "hello北"
  fmt.Println("str len=", len(str))   //按字节返回的
}

2)字符串遍历,同时处理有中文的问题 r := []rune(str)

func main() {
  str2 := "hello北京"
  r := []rune(str2)
  for i := 0; i < len(r); i++ {
    fmt.Printf("字符=%c \n", r[i])
  }
}

3)字符串转整数: n, err := strconv.Atoi("12")

func main() {
  n, err := strconv.Atoi("123")
  if err != nil {
    fmt.Println("转换错误", err)
  } else {
    fmt.Println("转换后的结果是", n)
  }
}

4)整数转字符串 str = strconv.Itoa(12345)

func main() {
  str = strconv.Itoa(12345)
  fmt.Printf("str=%v, str=%T \n", str, str)
}

5)字符串转 []byte: var bytes = []byte("hello go")

func main() {
  var bytes = []byte("hello go")
  fmt.Printf("bytes=%v \n", bytes)
}

6)[]byte 转字符串: str = string([]byte{97,98,99})

func main() {
  str := string([]byte{97,98,99})
  fmt.Printf("str=%v \n", str)
}

7)10进制转 2, 8, 16进制: str = strconv.FormatInt(123, 2) // 2->8, 16

func main() {
  str = strconv.FormatInt(123, 2)
  fmt.Printf("123对应的二进制是=%v \n", str)
  str = strconv.FormatInt(123, 16)
  fmt.Printf("123对应的16进制是=%v \n", str)
}

8)查找子串是否在指定的字符串中:strings.Contains("seafood", "foo")   //true

func main() {
  b := strings.Contains("seafood", "mary")
  fmt.Printf("b=%v \n",b) //false
}

9)统计一个字符串有几个指定的子串:strings.Count("ceheese", "e")   //4

func main() {
  num := strings.Count("ceheese", "se")
  fmt.Printf("num=%v \n", num)
}

10)不区分大小写的字符串比较(==是区分字母大小写的):fmt.Println(strings.EqualFold("abc","Abc"))   //true

func main() {
  b = strings.EqualFold("abc","Abc")
  fmt.Printf("b=%v \n", b)   //true

  fmt.Println("结果", "abc" == "Abc")   //区分大小写
}

11)返回子串在字符串第一次出现的index值,如果没有返回-1:strings.Index("NLT_abc", "abc") //4

func main() {
  index := strings.Index("NLT_abc", "abc")
  fmt.Printf("index=%v \n", index)
}

12)返回子串在字符串最后一次出现的index,如没有返回-1:strings.LastIndex("go golang", "go")

func main() {
  index := strings.LastIndex("go golang", "go") //3
  fmt.Printf("index=%v \n", index)
}

13)将指定的子串替换成另外一个子串:strings.Replace("go go hello","go", "go语言", n) 意思是想把go字母替换成"go语言" n可以指定你希望替换几个,如果n=-1表示全部替换

func main() {
  str2 := "go go hello"
  str = strings.Replace(str2,"go", "北京啊", -1)
  fmt.Printf("str=%v str2=%v \n", str, str2)
}

技术图片

14)按照指定的某个字符,为分隔标识,将一个字符串拆分成字符串数组:strings.Split("hello,world,ok",",")

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

技术图片

15)将字符串的字母进行大小写的转换:strings.ToLower("Go")  // go   strings.ToUpper("Go")   //GO

func main() {
  str = "goLang Hello"
  str = strings.ToLower(str)
  str2 = strings.ToUpper(str)
  fmt.Printf("str=%v \n", str)   //golang hello
  fmt.Printf("str2=%v \n", str2)   //GOLANG HELLO
}

16)将字符串左右两边的空格去掉:strings.TrimSpace(" tn a lone gopher ntrn ")

func main() {
  str = strings.TrimSpace(" tn a lone gopher ntrn ")
  fmt.Printf("str=%q \n", str)
}

技术图片

17)将字符串左右两边指定的的字符去掉: strings.Trim("! hello! ", " !") //["hello"] //将左右两边!和" "去掉

func main() {
  str = strings.Trim("! he!llo! ", " !")
  fmt.Printf("str=%q \n", str)
}

技术图片

18)将字符串左边指定的字符去掉: strings.TrimLeft("! hello!","!") //["hello"]   //将左边!和" "去掉

19)将字符串右边指定的字符去掉:string.TrimRight("! hello!", "!") //["hello"]   //将右边!和" "去掉

20)判断字符串是否以指定的字符串开头:strings.HasPrefix("ftp://192.168.10.1", "ftp")   //true

func main() {
  b = strings.HasPrefix("ftp://192.168.10.1", "ftp")
  fmt.Printf("b=%v \n",b)
}

21)判断字符串是否以指定的字符串结束:strings.HasSuffix("NLT_abc.jpg", "abc")   //false

 

字符串函数

标签:意思   dex   count   二进制   else   itoa   jpg   区分大小写   ati   

原文地址:https://www.cnblogs.com/green-frog-2019/p/11355210.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!