1.字符串操作
- 在对字符串进行处理时,需要借助于包“strings”
1.1 Contains
- func Contains(s, substr string) bool
- 功能:字符串s中是否包含substr,返回bool值
func main() {
str := "hello world"
fmt.Println(strings.Contains(str, "hello")) //true
fmt.Println(strings.Contains(str, "zhang")) //false
}
1.2 Join
- func Join(a []string, sep string) string
- 功能:字符串链接,把slice a通过sep链接起来
func main() {
s := []string{"abc", "hello", "golang", "java", "python"}
buf := strings.Join(s, "|")
fmt.Println(buf) //abc|hello|golang|java|python
}
1.3 Index
- func Index(s, sep string) int
- 功能:在字符串s中查找sep所在的位置,返回位置值,找不到返回-1
func main() {
fmt.Println(strings.Index("abc hello golang", "hello")) //4
fmt.Println(strings.Index("abc hello golang", "world")) //1
}
1.4 Repeat
- func Repeat(s string, count int) string
- 功能:重复s字符串count次,最后返回重复的字符串
func main() {
buf := strings.Repeat("go", 3)
fmt.Println(buf) //gogogo
}
1.5 Replace
- func Replace(s, old, new string, n int) string
- 功能:在s字符串中,把old字符串替换为new字符串,n表示替换的次数,小于0表示全部替换
func main() {
fmt.Println(strings.Replace("oink oink oink", "k", "@", 2)) //oin@ oin@ oink
fmt.Println(strings.Replace("oink oink oink", "oink", "xxoo", -1)) //xxoo xxoo xxoo
}
1.6 Split
- func Split(s, sep string) []string
- 功能:把s字符串按照sep分割,返回slice
func main() {
fmt.Println(strings.Split("oink|oink|oink", "|")) //[oink oink oink]
}
1.7 Trim
- func Trim(s string, cutset string) string
- 功能:在s字符串的头部和尾部去除cutset指定的字符串
func main() {
fmt.Println(strings.Trim("#xxoo#", "#")) //xxoo
}
1.8 Fields
- func Fields(s string) []string
- 功能:去除s字符串的空格符,并且按照空格分割返回slice
func main() {
fmt.Println(strings.Fields(" are you ok ? ")) //[are you ok ?]
}
2.字符串转换
2.1 Format
func main() {
var str string
str = strconv.FormatBool(false) //将bool类型转换为字符串
fmt.Println(str) //false
str = strconv.Itoa(888) //整型转换为字符串
fmt.Println(str) //888
//'f'指打印格式,以小数方式;4指小数点位数;64以float64处理
str = strconv.FormatFloat(3.14, 'f', 4, 64)
fmt.Println(str) //3.1400
}
2.2 Parse
func main() {
var flag bool
var err error
//字符串转换为bool
flag, err = strconv.ParseBool("true")
if err == nil {
fmt.Printf("%T\n", flag) //bool
fmt.Println(flag) //true
} else {
fmt.Println("err=", err)
}
//字符串转换为整型
a, _ := strconv.Atoi("123")
fmt.Printf("%T\n", a) //int
fmt.Println(a) //123
//字符串转换为浮点型
b, err := strconv.ParseFloat("3.14", 64)
if err == nil {
fmt.Printf("%T\n", b) //float64
fmt.Println(b) //3.14
} else {
fmt.Println("err=", err)
}
}
2.3 Append
- Append 系列函数将整数等转换为字符串后,添加到现有的字节数组中。
func main() {
slice := make([]byte, 0, 1024)
slice = strconv.AppendBool(slice, true)
//1234为要追加的数;10为指定十进制方式追加
slice = strconv.AppendInt(slice, 1234, 10)
slice = strconv.AppendQuote(slice, "hello")
fmt.Println(slice) //[116 114 117 101 49 50 51 52 34 104 101 108 108 111 34]
//转换string后再打印
fmt.Println(string(slice)) //true1234"hello"
}