package main
import (
"fmt"
"strconv"
"strings"
)
func main() {
// 计算字符串长度
// str := "asd啊" // 6
str1 := "asd" // 3
fmt.Println("str长度=",len(str1))
// 字符串遍历,含有中文
str2 := "hi,你好"
r := []rune(str2)
for i := 0;i < len(r);i++ {
fmt.Printf("字符=%c \n",r[i])
}
// 字符串 转 整数
// n,err := strconv.Atoi("aasd")
n,err := strconv.Atoi("666")
if err != nil {
fmt.Println("转换错误",err) // 转换失败,打印 提示
} else {
fmt.Println("转换结果=",n) // 666
}
// 整数 转 字符串
str3 := strconv.Itoa(12345)
fmt.Printf("str=%v,str类型=%T",str3,str3)
fmt.Printf("\n")
// 字符串 转 []byte
var bytes = []byte("hello world")
fmt.Printf("bytes=%v \n",bytes)
// []byte 转 字符串
str4 := string([]byte{97,98,99})
fmt.Printf("str=%v \n",str4)
// 10进制 转 2,8,16进制
str5 := strconv.FormatInt(666,2)
fmt.Printf("666对应的二进制是 %v \n",str5)
str6 := strconv.FormatInt(666,8)
fmt.Printf("666对应的八进制是 %v \n",str6)
// 查找子串是否在指定的字符串中
b1 := strings.Contains("asd","a") // true
fmt.Printf("b1 = %v \n",b1)
// 统计一个字符串,有几个指定的子串
num := strings.Count("asda","a") // 2个
fmt.Printf("num = %v \n",num)
// 不区分大小写的字符串比较(==是区分字母大小写的)
b2 := strings.EqualFold("abc","ABC") // true
fmt.Printf("b2 = %v \n",b2)
// 返回子串在字符串中出现的index,如果没有返回-1
index1 := strings.Index("aba","a")
fmt.Printf("aba第一次出现a的位置,index1 = %v \n",index1)
index2 := strings.LastIndex("aba","a")
fmt.Printf("aba最后一次出现a的位置,index2 = %v \n",index2)
// 替换指定的字符串,2为替换两个,-1 全部替换
str7 := "go go go"
str8 := strings.Replace(str7,"go","python",2)
fmt.Printf("替换后的字符串为%v \n",str8)
// 按照指定的分隔符,将字符串拆分为数组
strArr := strings.Split("absbdbf","b")
for i := 0;i < len(strArr);i++ {
fmt.Printf("分割后的元素 %v \n",strArr[i])
}
// 字符串,大写或小写
str9 := "Python"
str10 := strings.ToLower(str9)
str11 := strings.ToUpper(str9)
fmt.Printf("转换小写 %v \n",str10)
fmt.Printf("转换大写 %v \n",str11)
// 去除字符串左右两侧空格
str12 := strings.TrimSpace(" gogo go ")
fmt.Printf("去除字符串左右空格,%v \n",str12)
// 去除字符串左右两侧指定字符
str13 := strings.Trim("!asd!sfd!","!")
// str13 := strings.TrimLeft("!asd!sfd!","!") // 去除左侧
// str13 := strings.TrimRight("!asd!sfd!","!") // 去除右侧
fmt.Printf("去除字符串左右固定字符,%v \n",str13)
// 判断字符串是否以指定的字符串 开头/结尾
b3 := strings.HasPrefix("aassdd","a")
// b3 := strings.HasSuffix("aassdd","d") // 判断是否 以d结尾
fmt.Printf("判断字符串是否以指定的字符串开头,%v \n",b3)
}