字符串相关的系统函数
len(str)
统计字符串长度 按字节计算
是一个内置函数,不需要导入包,可以直接使用
所有的内置函数都放在手册的builtin目录下
1
| fmt.Println(len("golang你好"))
|
r:= rune(str)
将字符串转换成切片
也可以使用for range循环
1 2 3 4 5
| var str string = "golang你好" r := []rune(str) for i := 0; i < len(r); i++ { fmt.Printf("%c ", r[i]) }
|
strconv.Atoi()
字符串转整型
返回值 int,err
1 2 3 4
| a,_ := strconv.Atoi("123") fmt.Printf("a的类型是:%T , a的值是:%v \n",a,a)
|
strconv,Atoi()
整型转字符串
返回值 string
1 2 3
| b := strconv.Itoa(321) fmt.Printf("b的类型是:%T , b的値是:%v \n",b,b)
|
字符串查询
在一个字符串中查询是否包含另外一个字符串
1 2 3 4 5 6 7 8 9 10
| import ( "fmt" "strings" ) func main(){ var str string = "golang 你好" var s1 string = "你好" fmt.Println(strings.Contains(str,s1)) fmt.Println(strings.Contains(str,"123")) }
|
统计一个字符串中有几个指定的字符串
1 2 3
| var str string = "gogolang" fmt.Println(strings.Count(str,"go")) fmt.Println(strings.Count(str,"hello"))
|
不区分大小写进行两个字符串比较
1
| fmt.Println(strings.EqualFold("GO","go"))
|
区分大小写的比较
1
| fmt.Println("hello" == "hello")
|
查询字符串第一次出现的位置
如果没有返回 -1
1
| fmt.Println(strings.Index("golang 你好","n"))
|
字符串替换
语法 strings.Replace(被替换函数,被替换的字符,替换上的字符,替换的次数)
如果替换次数为-1则是全部替换
1
| fmt.Println(strings.Replace("hello world","world","go",-1))
|
以指定字符将字符串切割成数组
1 2 3 4
| var s string = "a,b,cc,ddd,e,f,g" var a1 []string = strings.Split(s,",") fmt.Printf("a1的类型是:%T, %v\n",a1,a1)
|
大小写转换
1 2 3
| var s string = "a,B,Cc,ddd,e,f,g" fmt.Println(strings.ToLower(s)) fmt.Println(strings.ToUpper(s))
|
字符串两边去空格
1 2
| var s string = " a,B,Cc,ddd,e,f,g" fmt.Println(strings.TrimSpace(s))
|
字符串两边去掉指定字符
1 2
| var s string = "111a,B,Cc,ddd,e,f,g111" fmt.Println(strings.Trim(s,"1"))
|
字符串去掉左边和右边的字符
1 2 3
| var s string = "111a,B,Cc,ddd,e,f,g111" fmt.Println(strings.TrimLeft(s,"1")) fmt.Println(strings.TrimRight(s,"1"))
|
判断字符串是否以指定字符开始
1 2
| var s string = "http://www.baidu.com" fmt.Println(strings.HasPrefix(s,"http"))
|
判断字符串是否以指定字符结束
1 2
| var s string = "http://www.baidu.com" fmt.Println(strings.HasSuffix(s,"com"))
|
时间和日期
需要导入time包
1 2 3 4
| import ( "fmt" "time" )
|
获取当前时间
返回值为一个结构体
1 2 3
| n := time.Now() fmt.Printf("n的类型是:%T, 值为:%v \n",n,n)
|
获取详细年月日
返回值类型为 int 月份为单词 可直接强制转换为int
1 2
| n := time.Now() fmt.Println(n.Year(),int(n.Month()),n.Day(),n.Hour(),n.Minute(),n.Second())
|
格式化输出
获取当前的格式化时间
1 2 3
| n := time.Now() var dateStr string = fmt.Sprintf("年月日: %d-%d-%d , 时分秒: %d-%d-%d",n.Year(),n.Month(),n.Day(),n.Hour(),n.Minute(),n.Second()) fmt.Println(dateStr)
|
格式化输出第二种写法
1 2 3
| n := time.Now() fmt.Println(n.Format("2006-01-02 15:04:05"))
|