本文按顺序包含四个部分
1.字符串处理函数 使用strings包
2.字符串转化为其他类型
3.其他类型转化为字符串
4.处理中文汉字使用utf8包
5.格式化字符串
strings包中常用的函数
返回-1表示后面大
fmt.Println(strings.Compare("a", "b"))
返回1表示前面大
fmt.Println(strings.Compare("b", "a"))
包含子串返回true
fmt.Println(strings.Contains("hello", "he"))
返回子串出现的次数
fmt.Println(strings.Count("happy", "p"))
将字符串按空白分割 返回字符串切片
fmt.Println(strings.Fields("happy new year\nhello world"))
判断字符串是否以某子串开头
fmt.Println(strings.HasPrefix("hello", "he"))
判断字符串是否以某子串结尾
fmt.Println(strings.HasSuffix("hello", "lo"))
返回字符串第一次出现的位置 不存在返回-1
fmt.Println(strings.Index("abandon already", "a"))
返回字符串最后一次出现的位置 不存在返回-1
fmt.Println(strings.LastIndex("abandon already", "a"))
按照指定符号分割成字符串切片并返回
fmt.Println(strings.Split("hello,world,happy,new,year", ","))
将字符串切片按照指定字符串链接
fmt.Println(strings.Join([]string{"hello", "world", "happy", "new", "year"}, "666"))
不区分大小写判断是否相等
fmt.Println(strings.EqualFold("abc", "ABC"))
将字符串中的m全部替换成X
fmt.Println(strings.Replace("swimming", "m", "X", -1))
将字符串中的m替换成X 只替换一次(最后一个参数是次数)
fmt.Println(strings.Replace("swimming", "m", "X", 1))
- package main
-
- import (
- "fmt"
- "strconv"
- "strings"
- "unicode/utf8"
- )
-
- func main() {
- //strings包
- //strings.Compare()
- fmt.Println(strings.Compare("a", "b")) //返回-1表示后面大
- fmt.Println(strings.Compare("b", "a")) //返回1表示前面大
- //strings.Contains()
- fmt.Println(strings.Contains("hello", "he")) //包含返回true
- //strings.Count()
- fmt.Println(strings.Count("happy", "p")) //返回子串出现的次数
- //strings.Fields()
- fmt.Println(strings.Fields("happy new year\nhello world")) //将字符串按空白分割 返回字符串切片
- //strings.HasPrefix()
- fmt.Println(strings.HasPrefix("hello", "he")) //判断字符串是否以某子串开头
- //strings.HasSuffix()
- fmt.Println(strings.HasSuffix("hello", "lo")) //判断字符串是否以某子串结尾
- //strings.Index()
- fmt.Println(strings.Index("abandon already", "a")) //返回字符串第一次出现的位置 不存在返回-1
- //strings.LastIndex()
- fmt.Println(strings.LastIndex("abandon already", "a")) //返回字符串最后一次出现的位置 不存在返回-1
- //strings.Split()
- fmt.Println(strings.Split("hello,world,happy,new,year", ",")) //按照指定符号分割成字符串切片并返回
- //strings.Join()
- fmt.Println(strings.Join([]string{"hello", "world", "happy", "new", "year"}, "666")) //将字符串切片按照指定字符串链接
- //strings.EqualFold()
- fmt.Println(strings.EqualFold("abc", "ABC")) //不区分大小写判断是否相等
- //strings.Replace
- fmt.Println(strings.Replace("swimming", "m", "X", -1)) //将字符串中的m全部替换成X
- fmt.Println(strings.Replace("swimming", "m", "X", 1)) //将字符串中的m替换成X 只替换一次
-
- //解决中文汉字的问题 使用utf8包
- str := "你好啊"
- fmt.Println(utf8.RuneCountInString(str))
-
- //字符串转其他类型
- //转化为bool类型
- if v, err := strconv.ParseBool("true"); err == nil {
- fmt.Println(v)
- } else {
- fmt.Println(err)
- }
- //转化为int类型
- if v, err := strconv.Atoi("999"); err == nil {
- fmt.Println(v)
- } else {
- fmt.Println(err)
- }
- //转化为int类型 指定尽职 16进制 64位存储
- if v, err := strconv.ParseInt("64", 16, 64); err == nil {
- fmt.Println(v)
- } else {
- fmt.Println(err)
- }
-
- //其他类型转化为字符串
- fmt.Println(strconv.FormatBool(true))
- fmt.Println(strconv.Itoa(520))
-
- //fmt.Sprintf()的使用 格式化一个字符串
- str = fmt.Sprintf("%d", 999)
- fmt.Println(str)
-
- }
