# Golang 字符串操作 - [Golang 字符串操作](#golang-字符串操作) - [1. 分割/拼接操作](#1-分割拼接操作) - [2. 字符串和其他类型转换](#2-字符串和其他类型转换) - [3. 字符串查找](#3-字符串查找) - [4. 剔除字符](#4-剔除字符) - [5. 字符串长度](#5-字符串长度) ## 1. 分割/拼接操作 ```go // 1. 以 "," 对字符串分割 s:="A,B,C" parts:=strings.Split(s,",") fmt.Println(parts) // 2. 把字符串连接起来 s=strings.Join(parts,"-") fmt.Println(s) ``` ## 2. 字符串和其他类型转换 ```go // 整形转字符串 s=strconv.Itoa(10) // 字符串转整形 fmt.Println(strconv.Atoi(s)) /** * 浮点型转字符串 * func FormatFloat(f float64, fmt byte, prec, bitSize int) string * f:float64类型的浮点数 * fmt: 转为字符串后,字符串的类型: * ‘b’ (-ddddp±ddd):二进制指数 * ‘e’ (-d.dddde±dd):10进制指数 * ‘E’ (-d.ddddE±dd):10进制指数 * ‘f’ (-ddd.dddd):无指数 * ‘g’ :指数很大时使用’e',其他使用 ‘f’ * ‘G’ :指数很大时使用 ‘E’,其他使用’f' * ‘x’ (-0xd.ddddp±ddd):十六进制分数和二进制指数 * ‘X’ (-0Xd.ddddP±ddd):十六进制分数和二进制指数 * prec:控制经度 * 如果格式标记为 ‘e’、‘E’、‘f’、‘x’、‘X’,则 prec 表示小数点后的数字位数 * 如果格式标记为 ‘g’,‘G’,则 prec 表示总的数字位数(整数部分+小数部分) * bitSize:表示f最初的类型。(虽然入参f是float64,有可能是float32转过来的) */ s=strconv.FormatFloat(x, 'f', 2, 64) ``` ## 3. 字符串查找 ```go strings.Contains("widuu", "id") // 查找某个字符是否在这个字符串中存在, return true strings.Contains("id", "widuu") // 查找某个字符是否在这个字符串中存在, return false strings.Contains("widuu", "i&d") // 查找某个字符是否在这个字符串中存在, return false strings.ContainsAny("widuu", "i&d") // 查询字符串中是否包含多个字符, return true strings.Count("widuu", "uu") // 在一段字符串中有多少匹配到的字符, return 1 strings.Count("widuu", "u") // 在一段字符串中有多少匹配到的字符, return 2 strings.Index("widuu", "i") // 查找字符串, 然后返回当前的位置, return 1 strings.Index("widuu", "u") // 查找字符串, 然后返回当前的位置, return 3 strings.LastIndex("widuu", "u") // 查找字符串, 然后返回最后出现的位置, return 4 strings.IndexAny("hello world hello world", "wo") // 查找字符串, 然后返回当前的位置, return 4 strings.LastIndexAny("hello world hello world", "wo") // 查找字符串, 然后返回最后出现的位置, return 19 ``` ## 4. 剔除字符 ```go strings.TrimSpace(" He llo ") // 剔除前后空格,return "He llo" strings.Trim("+He+llo++", "+") // 剔除前后指定字符,return "He+llo" strings.TrimLeft("+-+-He+-llo+-+-", "+-") // 剔除左侧任意匹配字符,return "He+-llo+-+-" strings.TrimRight("+-+-He+-llo+-+-", "+-") // 剔除右侧任意匹配字符,return "+-+-He+-llo" strings.TrimPrefix("+-+-He+-llo+-+-", "+-") // 仅剔除一组完全匹配的前导符,return "+-He+-llo+-+-" strings.TrimSuffix("+-+-He+-llo+-+-", "+") // 仅剔除一组完全匹配的后导符,return "+-+-He+-llo+-" ``` ## 5. 字符串长度 ```go fmt.Println(len("Hello")) ```