Go字符串常用处理
应用到strings包
/**
* @Author: jadeshu
* @Description:
* @File: main
* @Version: 1.0.0
* @Date: 2019/11/7 1:01
*/
package main
import (
"fmt"
"strconv"
"strings"
)
func main() {
// 字符串连接组合
s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, "|"))
// 字符串分割,返回切片
str := "foo@bar@hhh"
fmt.Println(strings.Split(str, "@"))
// 字符串中是否包含子串
b := strings.Contains(str, "oo")
fmt.Println(b)
// 字符串所在位置的索引 从0开始,不存在返回-1
index := strings.Index(str, "ar")
fmt.Println(index)
// 字符串重复
repeat := strings.Repeat(str, 3)
fmt.Println(repeat)
// 去掉字符串首尾空格
str = " I am str? "
fmt.Println("原来字符串内容:", str)
trim := strings.Trim(str, " ")
fmt.Println("去首尾空格后字符串内容:", trim)
// 去掉字符串所有空格
fields := strings.Fields(str)
fmt.Println(fields)
for i, data := range fields {
fmt.Println(i, data)
}
// ==========字符串转换================
// 字符串追加 ,先将内容转换为字符串在添加到数组中
//slice := append([]byte("hello "), "world"...)
slc := make([]byte, 0, 1024)
//slc := append([]byte("hello "), "jadeshu")
//slc = append(slc,'X')
fmt.Println(slc)
//fmt.Println(slice)
// 将bool值转换为字符串并追加到字节切片中 AppendXX函数
slc = strconv.AppendBool(slc, true)
fmt.Println(string(slc))
slc = strconv.AppendInt(slc, 1056, 10)
fmt.Println(string(slc))
slc = strconv.AppendQuote(slc, "adsad计算机的")
fmt.Println(string(slc))
slc = strconv.AppendQuoteRune(slc, '你')
fmt.Println(string(slc))
// 将其他格式值转换为字符串 FormatXXX函数
str2 := strconv.FormatBool(true)
fmt.Println(str2)
str2 = strconv.FormatInt(5056, 10)
fmt.Println(str2)
str2 = strconv.FormatFloat(3.1415926, 'f', -1, 64)
fmt.Println(str2)
// 整数转字符串
str2 = strconv.Itoa(1000)
fmt.Println(str2)
// 字符串整数转整数
in, e := strconv.Atoi("234")
if e != nil {
fmt.Println(e.Error())
}
fmt.Println(in)
// 字符串转其他类型
// ---1.字符串转bool值
bflg, _ := strconv.ParseBool("false")
fmt.Println(bflg)
// ---2.字符串转整数
i, _ := strconv.ParseInt("456", 10, 32)
fmt.Println(i)
}