Go语言中strings和strconv包示例代码详解

2020-01-28 13:39:39丽君

示例:


package main
import (
  "fmt"
  "strings"
)
func main() {
  s := "ThisThis is a Go program!This"
  fmt.Println(strings.Trim(s, "This")) // is a Go program!
  fmt.Println(strings.TrimLeft(s, "This"))//is a Go program!This
  fmt.Println(strings.TrimRight(s, "This"))//ThisThis is a Go program!
}

分割字符串

strings.Fields(s) 将会利用1个或多个空白符号来作为动态长度的分隔符将字符串分割成若干小块,并返

 回一个 slice,如果字符串只包含空白符号,则返回一个长度为 0 的 slice。


strings.Fields(s string) []string

示例:


package main
import (
  "fmt"
  "strings"
)
func main() {
  s := "This is a Go program!"
  fmt.Printf("%vn", strings.Fields(s)) //[This is a Go program!]
}

strings.Split(s,sep)用于自定义分割符号来对指定字符串进行分割,同样返回slice。

因为这 2 个函数都会返回 slice,所以习惯使用 for-range 循环来对其进行处理


strings.Split(s string, sep string) []string

示例:


package main
import (
  "fmt"
  "strings"
)
func main() {
  s := "This is a Go program!"
  result := strings.Split(s, "Go")
  fmt.Printf("%vn", result) //[This is a  program!]
  for _, value := range result {
    fmt.Printf("%sn", value)
  }
}

拼接slice到字符串

Join 用于将元素类型为 string 的 slice 使用分割符号来拼接组成一个字符串:


strings.Join(a []string, sep string) string

示例:


package main
import (
  "fmt"
  "strings"
)
func main() {
  var s []string = []string{"I", "love", "you"}
  fmt.Println(strings.Join(s, " ")) //I love you
}

从字符串中读取内容

函数 strings.NewReader(str) 用于生成一个 Reader 并读取字符串中的内容,然后返回指向该Reader 的指针,从其它类型读取内容的函数还有:

•Read() 从 []byte 中读取内容。
•ReadByte() 和 ReadRune() 从字符串中读取下一个 byte 或者 rune。

字符串与其它类型的转换

与字符串相关的类型转换都是通过 strconv 包实现的。

该包包含了一些变量用于获取程序运行的操作系统平台下 int 类型所占的位数,如: strconv.IntSize 。

任何类型 T 转换为字符串总是成功的。

针对从数字类型转换到字符串,Go 提供了以下函数:

•strconv.Itoa(i int) string 返回数字 i 所表示的字符串类型的十进制数。
•strconv.FormatFloat(f float64, fmt byte, prec int, bitSize int) string 将 64 位浮点型的数字转换为字符串,其中 fmt 表示格式(其值可以是 'b' 、 'e' 、 'f' 或 'g' ), prec 表示精度, bitSize 则使用 32 表示 float32,用 64 表示 float64。