NotePublic/Software/Development/Language/Go/Basic/Golang_字符串操作.md

3.5 KiB
Raw Blame History

Golang 字符串操作

1. 分割/拼接操作

// 1. 以 "," 对字符串分割
s:="A,B,C"
parts:=strings.Split(s,",")
fmt.Println(parts)

// 2. 把字符串连接起来
s=strings.Join(parts,"-")
fmt.Println(s)

2. 字符串和其他类型转换

// 整形转字符串
s=strconv.Itoa(10)
// 字符串转整形
fmt.Println(strconv.Atoi(s))
/**
 * 浮点型转字符串
 * func FormatFloat(f float64, fmt byte, prec, bitSize int) string
 *  ffloat64类型的浮点数
 *  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控制经度
  * 如果格式标记为 eEfxX则 prec 表示小数点后的数字位数
  * 如果格式标记为 gG则 prec 表示总的数字位数(整数部分+小数部分)
* bitSize表示f最初的类型。虽然入参f是float64有可能是float32转过来的
*/
s=strconv.FormatFloat(x, 'f', 2, 64)

3. 字符串查找

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. 剔除字符

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. 字符串长度

fmt.Println(len("Hello"))