str := "hello world"
常用方法
str := "hello world"
fmt.Println(str)
// 获取字符串的长度
runeStr := []rune("我爱我妈妈")
fmt.Println(len(runeStr)) // 5 统计字符数
fmt.Println(len("我爱我妈妈")) // 15 统计字节数
// 是否以xx开头
res := strings.HasPrefix(str, "he")
fmt.Println(res) //true
//是否以xx结尾
res2 := strings.HasSuffix(str, "ld")
fmt.Println(res2) //true
//是否包含
res3 := strings.Contains(str, "hello")
fmt.Println(res3) //true
//变大写
res4 := strings.ToUpper(str)
fmt.Println(res4) //HELLO WORLD
// 变小写
res5 := strings.ToLower(str)
fmt.Println(res5) //hello world
// 替换
name := "wupeipeiqi"
result1 := strings.Replace(name, "pei", "PE", 1) // 找到pei替换为PE,从左到右找第一个替换
result2 := strings.Replace(name, "pei", "PE", 2) // 找到pei替换为PE,从左到右找前两个替换
result3 := strings.Replace(name, "pei", "PE", -1) // 找到pei替换为PE,替换所有
fmt.Println(result1, result2, result3) //wuPEpeiqi wuPEPEqi wuPEPEqi
// 分割
str := "hello|world|ok"
res := strings.Split(str,"|")
fmt.Println(res) //[hello world ok]
//拼接
// 不建议
message := "我爱" + "北京天安门"
fmt.Println(message) //我爱北京天安门
// 建议:效率高一些
dataList := []string{"我爱", "北京天安门"}
result := strings.Join(dataList, "")
fmt.Println(result) // 我爱北京天安门
// 建议:效率更高一些(go 1.10之前)
var buffer bytes.Buffer
buffer.WriteString("你想")
buffer.WriteString("我干")
buffer.WriteString("他")
data := buffer.String()
fmt.Println(data) //你想我干他
// 建议:效率更更更更高一些(go 1.10之后)
var builder strings.Builder
builder.WriteString("哈哈哈")
builder.WriteString("去你的吧")
value := builder.String()
fmt.Println(value) //哈哈哈去你的吧
// 去两边
name := "wupeiqi"
result1 := strings.TrimRight(name, "qi") // 去除右边的qi
result2 := strings.TrimLeft(name, "w") // 去除左边的w
result3 := strings.Trim(name, "w") // 去除两边的w
fmt.Println(result1, result2, result3) // 输出:wupe upeiqi upeiqi
// 获取字符长度
fmt.Println(utf8.RuneCountInString(str)) //11 字符长度和字符串长度有时候不一样
// 将字符串转化为一个“字节集合”
by := []byte(str)
fmt.Println(by) //[104 101 108 108 111 32 119 111 114 108 100]
// 字节集合转化为字符串
by2 := []byte{104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100}
tar := string(by2)
fmt.Println(tar) //hello world
字符串和Int之间的转换
// 字符串转成Int
numStr := "666"
var data, err = strconv.Atoi(numStr)
fmt.Println(data,err)
// Int转成字符串
var result = strconv.Itoa(888)
字符串和字节的转换
var name string = "小可可"
// 字符串转换为一个"字节集合"
byteSet := []byte(name)
fmt.Println(byteSet) // [230,173,166,230,178,155,233,189,144]
// 字节的集合转换为字符串
byteList := []byte{230, 173, 166, 230, 178, 155, 233, 189, 144}
targetString := string(byteList)
fmt.Println(targetString)