Skip to content

文本字符串操作

  • 连接
  • 合并
  • 分隔
  • 消除空格
  • 取索引
  • 前缀后缀检测
  • 消除字符串
  • ...

字符串基本操作

package main

import (
    "fmt"
    "strings"
)

func main() {

    s := "hello world"

    // strings.Contains s中是否包含 hello
    fmt.Println(strings.Contains(s, "hello"), strings.Contains(s, "?"))

    // 索引 base从0开始
    fmt.Println(strings.Index(s, "o"))

    ss := "1#2#345"
    // 用#切割成数组
    fmt.Println(strings.Split(ss, "#"))
    // 将数组合并成字符串
    fmt.Println(strings.Join(strings.Split(ss, "#"), "#"))

    // 在s前缀是否包含he
    fmt.Println(strings.HasPrefix(s, "he"))

    // 在s后缀是否包含he
    fmt.Println(strings.HasSuffix(s, "he"))
}


// 输出
MacintoshdeMacBook-Pro-139:content elasticnotes$ go run strings.go 
true false
4
[1 2 345]
1#2#345
true

字符串转换

package main

import (
    "fmt"
    "strconv"
)

func main() {
    // Itoa 输入一个整型 输出一个字符串
    fmt.Println(strconv.Itoa(10))

    // Atoi 输入一个字符串 输出一个整型
    fmt.Println(strconv.Atoi("10"))

    // ParseBool 解析成bool
    fmt.Println(strconv.ParseBool("false"))

    // ParseFloat 字符串转浮点,32 存储到64, 64 = 64精度
    fmt.Println(strconv.ParseFloat("3.14", 32))
    fmt.Println(strconv.ParseFloat("3.14", 64))

    // 格式化
    fmt.Println(strconv.FormatBool(true))
    fmt.Println(strconv.FormatInt(123, 10))
    fmt.Println(strconv.FormatInt(123, 2))
}


// 输出
MacintoshdeMacBook-Pro-139:content elasticnotes$ go run transfer.go 
10
10 <nil>
false <nil>
3.140000104904175 <nil>
3.14 <nil>
true
123
1111011