了解标准库是一个非常好的学习语言的方法。接下里的一些章节我们将详细研究标准库中的类型,方法,结合实际应用案例进行有趣的编程。

字符串处理是比较基础的库,我们从简单的库开始入门。

本节我们将继续用实例代码研究以下函数的用法。


func Trim(s, cutset string) string
Trim返回字符串s的一个片段,其中删除了片段集中包含的所有前导和尾部Unicode代码点。
package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Print(strings.Trim("¡¡¡Hello, Gophers!!!", "!¡")) // Hello, Gophers
}

func TrimFunc(s string, f func(rune) bool) string
TrimFunc返回字符串s的一个片段,其中删除了满足f(c)的所有前导和尾部Unicode代码点。
package main

import (
	"fmt"
	"strings"
	"unicode"
)

func main() {
	fmt.Print(strings.TrimFunc("¡¡¡Hello, Gophers!!!", func(r rune) bool {
		return !unicode.IsLetter(r) && !unicode.IsNumber(r)
	}))// Hello, Gophers
}

func TrimLeft(s, cutset string) string
仅删除前导部分的指定字符。
package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Print(strings.TrimLeft("¡¡¡Hello, Gophers!!!", "!¡")) // Hello, Gophers!!!
}

func TrimLeftFunc(s string, f func(rune) bool) string
仅删除满足f(c)的所有前导部分的指定字符。
package main

import (
	"fmt"
	"strings"
	"unicode"
)

func main() {
	fmt.Print(strings.TrimLeftFunc("¡¡¡Hello, Gophers!!!", func(r rune) bool {
		return !unicode.IsLetter(r) && !unicode.IsNumber(r)
	})) // Hello, Gophers!!!
}

func TrimPrefix(s, prefix string) string
删除前导部分的字符串,它与left系列函数不同之处是,需要匹配整个prefix字符串。
package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.TrimPrefix("¡¡¡Hello, Gophers!!!", "¡")) // ¡¡Hello, Gophers!!!
    fmt.Println(strings.TrimPrefix("¡¡¡Hello, Gophers!!!", "¡¡¡Hello, ")) // Gophers!!!
    fmt.Println(strings.TrimPrefix("¡¡¡Hello, Gophers!!!", "¡¡¡Howdy, ")) // ¡¡¡Hello, Gophers!!!
}

func TrimRight(s, cutset string) string
TrimRight返回字符串s的一个片段,去掉片段集中包含的所有尾部Unicode代码点。
若要删除后缀,请改用TrimSuffix。
package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Print(strings.TrimRight("¡¡¡Hello, Gophers!!!", "!¡")) // ¡¡¡Hello, Gophers
}

func TrimRightFunc(s string, f func(rune) bool) string
TrimRightFunc返回字符串s的一个片段,去掉所有满足f(c)的尾随Unicode代码点。
package main

import (
	"fmt"
	"strings"
	"unicode"
)

func main() {
	fmt.Print(strings.TrimRightFunc("¡¡¡Hello, Gophers!!!", func(r rune) bool {
		return !unicode.IsLetter(r) && !unicode.IsNumber(r)
	}))
}

func TrimSpace(s string) string
TrimSpace返回字符串s的一个片段,去掉所有前导和尾随空白字符。
package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.TrimSpace(" \t\n Hello, Gophers \n\t\r\n")) // Hello, Gophers
}

func TrimSuffix(s, suffix string) string
删除结尾部分的字符串,它与right系列函数不同之处是,需要匹配整个prefix字符串。
package main

import (
	"fmt"
	"strings"
)

func main() {
	var s = "¡¡¡Hello, Gophers!!!"
	s = strings.TrimSuffix(s, ", Gophers!!!")
	s = strings.TrimSuffix(s, ", Marmots!!!")
	fmt.Print(s) // ¡¡¡Hello
}