package main
import (
"fmt"
"strconv"
"strings"
)
func main() {
// 字符串长度
str := "hello北"
fmt.Println("str len():", len(str))
// 带中文的字符串变量
str2 := "hello北京"
r := []rune(str2)
for i := 0; i < len(r); i++ {
fmt.Printf("字符=%c\n", r[i])
}
// 字符串转整数
s, _ := strconv.Atoi("1234")
fmt.Printf("%T\t%d\n", s, s)
// 整数转字符串
fmt.Printf("%T\t%s\n", strconv.Itoa(1234), strconv.Itoa(1234))
//byte转字符串
str = string([]byte{97, 98, 99})
fmt.Printf("%T\t%s\n", str, str)
str = string([]rune{'你', '是'})
fmt.Printf("%T\t%s\n", str, str)
//十进制转2,8,16进制
str = strconv.FormatInt(123, 2)
fmt.Printf("二进制:%v\n", str)
str = strconv.FormatInt(123, 8)
fmt.Printf("八进制:%v\n", str)
str = strconv.FormatInt(123, 16)
fmt.Printf("十六进制:%v\n", str)
//字符串中是否包含某字符串
str = "fdsagfoo"
fmt.Println("是否包含:", strings.Contains(str, "foo"))
//替换字符串中的子串
str = "go go go go 性能好"
//全部替换
fmt.Println("go 替换成 golang:", strings.Replace(str, "go", "golang", strings.Count(str, "go")))
// 统计字符出现次数
fmt.Println("出现次数:", strings.Count(str, "f"))
// 查看字符串第一次出现的位置
fmt.Println("第一次出现位置:", strings.Index(str, "s"))
//查看字符串最后一次出现的位置
fmt.Println("最后一次出现位置:", strings.LastIndex(str, "f"))
// 判断两个字符是否相等(==区分大小写)
fmt.Println("不区分大小写否相等:", strings.EqualFold("A", "a"))
fmt.Println("区分大小写是否相等:", "A" == "a")
// 判断字符串是否以指定字符串开头
fmt.Println("是否以hello开头:", strings.HasPrefix("hello world!", "hello"))
// 判断是付出是否以指定字符串结尾
fmt.Println("是否以.jpg结尾:", strings.HasSuffix("wx.jpg", ".jpg"))
// 字符串转换为小写
fmt.Println(strings.ToLower("GO"))
// 字符串转换为大写
fmt.Println(strings.ToUpper("sonfer"))
// 将字符串两边空格去掉
fmt.Println(strings.TrimSpace(" fdsag fdsa "))
// 去掉左右两边某些字符
fmt.Println(strings.Trim(" !hao sonf esa !", " s!ah"))
// 去掉左边某些字符
fmt.Println(strings.TrimLeft(" !hao sonf esa !", " !"))
// 去掉右边某些字符
fmt.Println(strings.TrimRight(" !hao sonf esa !", " !"))
}