了解标准库是一个非常好的学习语言的方法。接下里的一些章节我们将详细研究标准库中的类型,方法,结合实际应用案例进行有趣的编程。
字符串处理是比较基础的库,我们从简单的库开始入门。
本节我们将继续用实例代码研究以下函数的用法。
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
}