go字符串处理

1.字符串操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package main

import (
"fmt"
"strings"
)

var (
strs []string = []string{"hello", "world", "mebaron", "123654789963852741"}
str string = "akhuiabjka1563afadf74a3ssf55sfa44a"
sep string = "a"
)

func main() {
// 判断s中是否包含substr。
fmt.Printf("strings.Contains(str, sep): %v\n", strings.Contains(str, sep))

// 字符串连接,把slice a通过sep连接起来。
fmt.Printf("strings.Join(strs, \",\"): %v\n", strings.Join(strs, ","))

// 在字符串s中查找sep所在的位置,返回位置值,找不到返回-1。
fmt.Printf("strings.Index(str, sep): %v\n", strings.Index(str, sep))

// 重复s字符串count次,最后返回重复的字符串。
fmt.Printf("strings.Repeat(str, 2): %v\n", strings.Repeat(str, 2))

// 在s字符串中,把old字符串替换为new字符串,n表示替换次数,n<0表示全部替换。
fmt.Printf("strings.Replace(str, \"o\", \"O\", -1): %v\n", strings.Replace(str, "o", "O", -1))

// 把s字符串按照sep分割,返回slice。
fmt.Printf("strings.Split(str, sep): %v\n", strings.Split(str, sep))

// 在s字符串中去除cutset指定的字符串。
fmt.Printf("strings.Trim(str, sep): %v\n", strings.Trim(str, sep))

// 去除s字符串的空格符,并且按照空格分割返回slice。
fmt.Printf("strings.Fields(\"abc cdd pdd\"): %v\n", strings.Fields("abc cdd pdd"))
}

2.字符串转换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package main

import (
"fmt"
"strconv"
)

func main() {
// Append系列函数将其他类型转换成字符串后,添加到现有的字节数组中
str := make([]byte, 0, 100)
fmt.Printf("strconv.AppendInt(str, 4567, 10): %v\n", strconv.AppendInt(str, 4567, 10))
fmt.Printf("strconv.AppendBool(str, true): %v\n", strconv.AppendBool(str, true))
fmt.Printf("strconv.AppendQuote(str, \"mebaron\"): %v\n", strconv.AppendQuote(str, "mebaron"))
fmt.Printf("strconv.AppendQuoteRune(str, '龙'): %v\n", strconv.AppendQuoteRune(str, '龙'))

// Format系列函数把其他类型转换成字符串
fmt.Printf("strconv.FormatBool(false): %v\n", strconv.FormatBool(false))
fmt.Printf("strconv.FormatFloat(100.23, 'g', 12, 64): %v\n", strconv.FormatFloat(100.23, 'g', 12, 64))
fmt.Printf("strconv.FormatInt(1314, 10): %v\n", strconv.FormatInt(1314, 10))
fmt.Printf("strconv.FormatUint(1523, 10): %v\n", strconv.FormatUint(1523, 10))
fmt.Printf("strconv.Itoa(1024): %v\n", strconv.Itoa(1024))

// Parse系列函数把字符串转换成其他类型
fmt.Println(strconv.ParseBool("true"))
fmt.Println(strconv.ParseFloat("12.234", 64))
fmt.Println(strconv.ParseInt("123456", 10, 64))
fmt.Println(strconv.ParseUint("13520", 10, 64))
fmt.Println(strconv.Atoi("12345"))
}