package main
import (
"fmt"
"strconv"
"strings"
)
/*
系统内置的String常用的函数
*/
func main() {
str :="这是一个字符串"
fmt.Println(len(str))//输出8中文是按照字节来输出
//遍历带中文的字符串
str2 := []rune(str)//切片 遍历有中文的字符串需要先将字符串转为rune切片
for i:=0;i<len(str2);i++ {
fmt.Printf("字符=%c\n",str2[i])
}
//数字字符串转为int类型
strInt:="123"
n,error:=strconv.Atoi(strInt)
if error !=nil{
fmt.Println("转换错误",error)
}else{
fmt.Println(n)//现在就是转换为int类型了
}
//int类型转为字符串
num :=123
intStr :=strconv.Itoa(num)
fmt.Printf("inetStr类型是:%T%v\n",intStr,intStr)
//字符串转为[]byte
bytes :=[]byte( "转为byte类型")
fmt.Println(bytes)//这样就是输出对应的阿斯克码
//[]byte转字符串
byteStr :=string([]byte{97,98,99})
fmt.Println(byteStr)
//十进制转为2,8,16进制的字符串
str = strconv.FormatInt(123,2)
fmt.Printf("123对应的2进制:%v\n",str)
//查找字符串中是否包含某个值
strVal :="查找字符串"
b:=strings.Contains(strVal,"字")
if b{
fmt.Println("b字符串包含字",b)
}
//统计字符串中有几个指定的值
strVal2 :="aaacgv"
num2 :=strings.Count(strVal2,"a")
fmt.Printf("strval2中包含%v个a\n",num2)
//字符串比较 如果用==是区分大小写的,strings.EqualFold是不区分大小写
judge :=strings.EqualFold("GO","go")
fmt.Println(judge)
//判断字符串中子字符串出现的位置 等于js中的 indexOf
index :=strings.Index("chicken","n")//返回结果和js一样没有找到就是-1
fmt.Println(index)
//判断字符串中子字符串最后出现的位置
index1 :=strings.LastIndex("chicken","c")
fmt.Println(index1)
//将字符串中指定的值替换为其他值
str = strings.Replace("oink oink oink","o","s",-1)//strings.Replace(字符串,指定值,替换为,(-1:是全部 1:是一个))
fmt.Println(str)
//字符串分隔为数组 与js中的split一样
strArr := strings.Split("a,b,v,b",",")
fmt.Printf("%v\n",strArr)
//将字符串中的值进行大小写转换
str = "Hello"
//str3 := strings.ToLower(str)//转小写
str3 := strings.ToUpper(str)//转大写
fmt.Println(str3)
//去除字符串首尾空格 跟PHP trim一样
str = " hello "
str = strings.TrimSpace(str)
fmt.Printf("%q\n",str)
//字符串首尾指定字符去除
str ="! hello! "
//str= strings.Trim(str,"! ")
//str =strings.TrimLeft(str,"!")//去除字符串左边指定字符
str =strings.TrimRight(str," ")//去除字符串右边边指定字符
fmt.Printf("%q\n",str)
//判断字符串是否以指定字符开头
a := strings.HasPrefix(str,"!")
a = strings.HasSuffix(str,"!")//判断是否以指定字符结尾
fmt.Println(a)
}
原文:https://www.cnblogs.com/sheep-fu/p/14749042.html