Package strings

import "strings"
Overview
Index
Examples

Overview ▾

包字符串实现简单的函数来处理UTF-8编码的字符串.

有关Go中UTF-8字符串的信息,请参见https://blog.golang.org/strings .

Index ▾

func Compare(a, b string) int
func Contains(s, substr string) bool
func ContainsAny(s, chars string) bool
func ContainsRune(s string, r rune) bool
func Count(s, substr string) int
func EqualFold(s, t string) bool
func Fields(s string) []string
func FieldsFunc(s string, f func(rune) bool) []string
func HasPrefix(s, prefix string) bool
func HasSuffix(s, suffix string) bool
func Index(s, substr string) int
func IndexAny(s, chars string) int
func IndexByte(s string, c byte) int
func IndexFunc(s string, f func(rune) bool) int
func IndexRune(s string, r rune) int
func Join(a []string, sep string) string
func LastIndex(s, substr string) int
func LastIndexAny(s, chars string) int
func LastIndexByte(s string, c byte) int
func LastIndexFunc(s string, f func(rune) bool) int
func Map(mapping func(rune) rune, s string) string
func Repeat(s string, count int) string
func Replace(s, old, new string, n int) string
func ReplaceAll(s, old, new string) string
func Split(s, sep string) []string
func SplitAfter(s, sep string) []string
func SplitAfterN(s, sep string, n int) []string
func SplitN(s, sep string, n int) []string
func Title(s string) string
func ToLower(s string) string
func ToLowerSpecial(c unicode.SpecialCase, s string) string
func ToTitle(s string) string
func ToTitleSpecial(c unicode.SpecialCase, s string) string
func ToUpper(s string) string
func ToUpperSpecial(c unicode.SpecialCase, s string) string
func ToValidUTF8(s, replacement string) string
func Trim(s string, cutset string) string
func TrimFunc(s string, f func(rune) bool) string
func TrimLeft(s string, cutset string) string
func TrimLeftFunc(s string, f func(rune) bool) string
func TrimPrefix(s, prefix string) string
func TrimRight(s string, cutset string) string
func TrimRightFunc(s string, f func(rune) bool) string
func TrimSpace(s string) string
func TrimSuffix(s, suffix string) string
type Builder
    func (b *Builder) Cap() int
    func (b *Builder) Grow(n int)
    func (b *Builder) Len() int
    func (b *Builder) Reset()
    func (b *Builder) String() string
    func (b *Builder) Write(p []byte) (int, error)
    func (b *Builder) WriteByte(c byte) error
    func (b *Builder) WriteRune(r rune) (int, error)
    func (b *Builder) WriteString(s string) (int, error)
type Reader
    func NewReader(s string) *Reader
    func (r *Reader) Len() int
    func (r *Reader) Read(b []byte) (n int, err error)
    func (r *Reader) ReadAt(b []byte, off int64) (n int, err error)
    func (r *Reader) ReadByte() (byte, error)
    func (r *Reader) ReadRune() (ch rune, size int, err error)
    func (r *Reader) Reset(s string)
    func (r *Reader) Seek(offset int64, whence int) (int64, error)
    func (r *Reader) Size() int64
    func (r *Reader) UnreadByte() error
    func (r *Reader) UnreadRune() error
    func (r *Reader) WriteTo(w io.Writer) (n int64, err error)
type Replacer
    func NewReplacer(oldnew ...string) *Replacer
    func (r *Replacer) Replace(s string) string
    func (r *Replacer) WriteString(w io.Writer, s string) (n int, err error)
Bugs

Package files

builder.go compare.go reader.go replace.go search.go strings.go

func Compare 1.5

func Compare(a, b string) int

Compare返回一个按字典顺序比较两个字符串的整数. 如果a == b,结果将为0,如果a <b,则结果为-1,如果a> b,则结果为+1.

仅包括与包字节对称的比较. 使用内置的字符串比较运算符==,<,>等通常更清晰,总是更快.

Example

-1
0
1

func Contains

func Contains(s, substr string) bool

包含报告substr是否在s之内.

Example

true
false
true
true

func ContainsAny

func ContainsAny(s, chars string) bool

ContainsAny报告char中的任何Unicode代码点是否在s之内.

Example

false
true
true
true
false
false

func ContainsRune

func ContainsRune(s string, r rune) bool

ContainsRune报告Unicode代码点r是否在s内.

Example

true
false

func Count

func Count(s, substr string) int

Count计算s中substr的非重叠实例的数量. 如果substr是一个空字符串,则Count返回1 + s中的Unicode代码点数.

Example

3
5

func EqualFold

func EqualFold(s, t string) bool

EqualFold报告在Unicode大小写折叠下,被解释为UTF-8字符串的s和t是否相等.

Example

true

func Fields

func Fields(s string) []string

字段根据unicode.IsSpace的定义,将字符串s围绕一个或多个连续的空白字符的每个实例进行拆分,并返回s的子字符串片段;如果s仅包含空格,则返回空片段.

Example

Fields are: ["foo" "bar" "baz"]

func FieldsFunc

func FieldsFunc(s string, f func(rune) bool) []string

FieldsFunc在每次运行满足f(c)的Unicode代码点c时拆分字符串s,并返回s的切片数组. 如果s中的所有代码点均满足f(c)或字符串为空,则返回空片. FieldsFunc不保证其调用f(c)的顺序. 如果f对于给定的c没有返回一致的结果,则FieldsFunc可能崩溃.

Example

Fields are: ["foo1" "bar2" "baz3"]

func HasPrefix

func HasPrefix(s, prefix string) bool

HasPrefix测试字符串s是否以前缀开头.

Example

true
false
true

func HasSuffix

func HasSuffix(s, suffix string) bool

HasSuffix测试字符串s是否以后缀结尾.

Example

true
false
false
true

func Index

func Index(s, substr string) int

Index返回s中substr的第一个实例的索引;如果s中不存在substr,则返回-1.

Example

4
-1

func IndexAny

func IndexAny(s, chars string) int

IndexAny返回s中chars中任何Unicode代码点的第一个实例的索引;如果s中不存在chars中的Unicode代码点,则返回-1.

Example

2
-1

func IndexByte 1.2

func IndexByte(s string, c byte) int

IndexByte返回s中c的第一个实例的索引;如果s中不存在c,则返回-1.

Example

0
3
-1

func IndexFunc

func IndexFunc(s string, f func(rune) bool) int

IndexFunc将索引返回到满足f(c)的第一个Unicode代码点的s中;如果没有,则返回-1.

Example

7
-1

func IndexRune

func IndexRune(s string, r rune) int

IndexRune返回Unicode代码点r的第一个实例的索引;如果s中不存在符文,则返回-1. 如果r为utf8.RuneError,它将返回任何无效UTF-8字节序列的第一个实例.

Example

4
-1

func Join

func Join(a []string, sep string) string

Join连接a的元素以创建单个字符串. 分隔符字符串sep放置在结果字符串中的元素之间.

Example

foo, bar, baz

func LastIndex

func LastIndex(s, substr string) int

LastIndex返回s中substr的最后一个实例的索引;如果s中不存在substr,则返回-1.

Example

0
3
-1

func LastIndexAny

func LastIndexAny(s, chars string) int

LastIndexAny返回s中chars中任何Unicode代码点的最后一个实例的索引;如果s中不存在chars中的Unicode代码点,则返回-1.

Example

4
8
-1

func LastIndexByte 1.5

func LastIndexByte(s string, c byte) int

LastIndexByte返回s中c的最后一个实例的索引;如果s中不存在c,则返回-1.

Example

10
8
-1

func LastIndexFunc

func LastIndexFunc(s string, f func(rune) bool) int

LastIndexFunc将索引的最后一个满足f(c)的Unicode代码点的s返回,如果没有,则返回-1.

Example

5
2
-1

func Map

func Map(mapping func(rune) rune, s string) string

Map返回字符串s的副本,其所有字符都根据映射函数进行了修改. 如果映射返回负值,则从字符串中删除该字符且不进行替换.

Example

'Gjnf oevyyvt naq gur fyvgul tbcure...

func Repeat

func Repeat(s string, count int) string

Repeat返回一个新字符串,其中包含字符串s的计数副本.

如果count为负或(len *(s)* count)的结果溢出,则表示恐慌.

Example

banana

func Replace

func Replace(s, old, new string, n int) string

Replace返回字符串s的副本,其中旧的前n个非重叠实例被新的替换. 如果old为空,则它在字符串的开头和每个UTF-8序列之后匹配,最多可产生k个符文字符串的k + 1个替换. 如果n <0,则替换次数没有限制.

Example

oinky oinky oink
moo moo moo

func ReplaceAll 1.12

func ReplaceAll(s, old, new string) string

ReplaceAll返回字符串s的副本,其中所有旧的非重叠实例都被new替换. 如果old为空,则它在字符串的开头和每个UTF-8序列之后匹配,最多可产生k个符文字符串的k + 1个替换.

Example

moo moo moo

func Split

func Split(s, sep string) []string

将s分割为所有由sep分隔的子字符串,并返回这些分隔符之间的子字符串的一部分.

如果s不包含sep且sep不为空,则Split返回长度为1的切片,其唯一元素为s.

如果sep为空,则Split在每个UTF-8序列之后拆分. 如果s和sep均为空,则Split返回一个空切片.

它等效于SplitN,计数为-1.

Example

["a" "b" "c"]
["" "man " "plan " "canal panama"]
[" " "x" "y" "z" " "]
[""]

func SplitAfter

func SplitAfter(s, sep string) []string

SplitAfter在sep的每个实例之后将s切片为所有子字符串,并返回这些子字符串的切片.

如果s不包含sep且sep不为空,则SplitAfter返回长度为1的切片,其唯一元素为s.

如果sep为空,则SplitAfter在每个UTF-8序列之后拆分. 如果s和sep均为空,则SplitAfter返回一个空切片.

它等效于SplitAfterN,计数为-1.

Example

["a," "b," "c"]

func SplitAfterN

func SplitAfterN(s, sep string, n int) []string

SplitAfterN在sep的每个实例之后将s切片为子字符串,并返回这些子字符串的切片.

该计数确定要返回的子字符串的数量:

n > 0: at most n substrings; the last substring will be the unsplit remainder.
n == 0: the result is nil (zero substrings)
n < 0: all substrings

s和sep的边缘情况(例如,空字符串)的处理方法如SplitAfter文档中所述.

Example

["a," "b,c"]

func SplitN

func SplitN(s, sep string, n int) []string

SplitN将s切片为由sep分隔的子字符串,并返回这些分隔符之间的子字符串的切片.

该计数确定要返回的子字符串的数量:

n > 0: at most n substrings; the last substring will be the unsplit remainder.
n == 0: the result is nil (zero substrings)
n < 0: all substrings

s和sep的边缘情况(例如,空字符串)的处理方法如Split文档中所述.

Example

["a" "b,c"]
[] (nil = true)

func Title

func Title(s string) string

Title返回带有所有Unicode字母的字符串s的副本,这些字母以映射到其Unicode标题大小写的单词开头.

BUG(rsc):标题用于单词边界的规则不能正确处理Unicode标点.

Example

Her Royal Highness
Loud Noises
Хлеб

func ToLower

func ToLower(s string) string

ToLower返回s,其中所有Unicode字母均映射为小写字母.

Example

gopher

func ToLowerSpecial

func ToLowerSpecial(c unicode.SpecialCase, s string) string

ToLowerSpecial返回字符串s的副本,其中所有Unicode字母都使用c指定的大小写映射映射到其小写字母.

Example

önnek iş

func ToTitle

func ToTitle(s string) string

ToTitle返回字符串s的副本,其中所有Unicode字母都映射到其Unicode标题大小写.

Example

HER ROYAL HIGHNESS
LOUD NOISES
ХЛЕБ

func ToTitleSpecial

func ToTitleSpecial(c unicode.SpecialCase, s string) string

ToTitleSpecial返回字符串s的副本,其中所有Unicode字母都映射到其Unicode标题大小写,并优先使用特殊的大小写规则.

Example

DÜNYANIN İLK BORSA YAPISI AİZONAİ KABUL EDİLİR

func ToUpper

func ToUpper(s string) string

ToUpper返回s,其中所有Unicode字母都映射到其大写字母.

Example

GOPHER

func ToUpperSpecial

func ToUpperSpecial(c unicode.SpecialCase, s string) string

ToUpperSpecial返回字符串s的副本,其中所有Unicode字母都使用c指定的大小写映射映射到其大写字母.

Example

ÖRNEK İŞ

func ToValidUTF8 1.13

func ToValidUTF8(s, replacement string) string

ToValidUTF8返回字符串s的副本,其中每次运行的无效UTF-8字节序列都由替换字符串替换,该替换字符串可能为空.

func Trim

func Trim(s string, cutset string) string

Trim返回字符串s的一部分,其中删除了cutset中包含的所有前导和尾随Unicode代码点.

Example

Hello, Gophers

func TrimFunc

func TrimFunc(s string, f func(rune) bool) string

TrimFunc返回一个字符串s的一部分,其中所有满足f(c)的前导和尾随Unicode代码点c均被删除.

Example

Hello, Gophers

func TrimLeft

func TrimLeft(s string, cutset string) string

TrimLeft返回字符串s的一部分,其中cutset中包含的所有前导Unicode代码点都已删除.

要删除前缀,请改用TrimPrefix.

Example

Hello, Gophers!!!

func TrimLeftFunc

func TrimLeftFunc(s string, f func(rune) bool) string

TrimLeftFunc返回字符串s的一部分,其中所有满足f(c)的前导Unicode代码点c均被删除.

Example

Hello, Gophers!!!

func TrimPrefix 1.1

func TrimPrefix(s, prefix string) string

TrimPrefix返回s,而没有提供的前导前缀字符串. 如果s不以前缀开头,则s不变返回.

Example

Gophers!!!

func TrimRight

func TrimRight(s string, cutset string) string

TrimRight返回字符串s的一部分,其中删除了cutset中包含的所有尾随Unicode代码点.

要删除后缀,请改用TrimSuffix.

Example

¡¡¡Hello, Gophers

func TrimRightFunc

func TrimRightFunc(s string, f func(rune) bool) string

TrimRightFunc返回字符串s的一部分,其中所有满足f(c)的尾随Unicode代码点c均被删除.

Example

¡¡¡Hello, Gophers

func TrimSpace

func TrimSpace(s string) string

TrimSpace返回字符串s的一部分,并删除了Unicode定义的所有前导和尾随空格.

Example

Hello, Gophers

func TrimSuffix 1.1

func TrimSuffix(s, suffix string) string

TrimSuffix返回s,但不提供结尾的后缀字符串. 如果s不以后缀结尾,则s保持不变.

Example

¡¡¡Hello

type Builder 1.10

生成器用于使用Write方法有效地构建字符串. 它最大程度地减少了内存复制. 零值可以使用了. 不要复制非零的Builder.

type Builder struct {
    // contains filtered or unexported fields
}

Example

3...2...1...ignition

func (*Builder) Cap 1.12

func (b *Builder) Cap() int

Cap返回构建器基础字节片的容量. 它是分配给正在构建的字符串的总空间,包括已写入的所有字节.

func (*Builder) Grow 1.10

func (b *Builder) Grow(n int)

如有必要,增长可增加b的容量,以保证另外n个字节的空间. 在Grow(n)之后,至少可以将n个字节写入b,而无需进行其他分配. 如果n为负,则恐慌.

func (*Builder) Len 1.10

func (b *Builder) Len() int

Len返回累加字节数; b.Len()== len(b.String()).

func (*Builder) Reset 1.10

func (b *Builder) Reset()

重置将生成器重置为空.

func (*Builder) String 1.10

func (b *Builder) String() string

String返回累积的字符串.

func (*Builder) Write 1.10

func (b *Builder) Write(p []byte) (int, error)

写操作会将p的内容附加到b的缓冲区中. 写操作始终返回len(p),nil.

func (*Builder) WriteByte 1.10

func (b *Builder) WriteByte(c byte) error

WriteByte将字节c附加到b的缓冲区. 返回的错误始终为nil.

func (*Builder) WriteRune 1.10

func (b *Builder) WriteRune(r rune) (int, error)

WriteRune将Unicode代码点r的UTF-8编码附加到b的缓冲区. 它返回r的长度和nil错误.

func (*Builder) WriteString 1.10

func (b *Builder) WriteString(s string) (int, error)

WriteString将s的内容附加到b的缓冲区. 它返回s的长度和nil错误.

type Reader

Reader通过读取字符串来实现io.Reader,io.ReaderAt,io.Seeker,io.WriterTo,io.ByteScanner和io.RuneScanner接口. Reader的零值类似于空字符串的Reader.

type Reader struct {
    // contains filtered or unexported fields
}

func NewReader

func NewReader(s string) *Reader

NewReader返回从读取的新Reader. 它类似于bytes.NewBufferString,但效率更高且只读.

func (*Reader) Len

func (r *Reader) Len() int

Len返回字符串的未读部分的字节数.

func (*Reader) Read

func (r *Reader) Read(b []byte) (n int, err error)

func (*Reader) ReadAt

func (r *Reader) ReadAt(b []byte, off int64) (n int, err error)

func (*Reader) ReadByte

func (r *Reader) ReadByte() (byte, error)

func (*Reader) ReadRune

func (r *Reader) ReadRune() (ch rune, size int, err error)

func (*Reader) Reset 1.7

func (r *Reader) Reset(s string)

重置将读取器重置为从中读取.

func (*Reader) Seek

func (r *Reader) Seek(offset int64, whence int) (int64, error)

Seek实现io.Seeker接口.

func (*Reader) Size 1.5

func (r *Reader) Size() int64

Size返回基础字符串的原始长度. 大小是可通过ReadAt读取的字节数. 返回的值始终相同,并且不受任何其他方法的调用影响.

func (*Reader) UnreadByte

func (r *Reader) UnreadByte() error

func (*Reader) UnreadRune

func (r *Reader) UnreadRune() error

func (*Reader) WriteTo 1.1

func (r *Reader) WriteTo(w io.Writer) (n int64, err error)

WriteTo实现io.WriterTo接口.

type Replacer

Replacer用替换项替换字符串列表. 对于多个goroutine并发使用是安全的.

type Replacer struct {
    // contains filtered or unexported fields
}

func NewReplacer

func NewReplacer(oldnew ...string) *Replacer

NewReplacer从旧的新字符串对列表中返回新的Replacer. 替换按照它们在目标字符串中出现的顺序执行,没有重叠的匹配项. 旧的字符串比较按参数顺序进行.

如果给定了奇数个参数,NewReplacer会出现恐慌.

Example

This is &lt;b&gt;HTML&lt;/b&gt;!

func (*Replacer) Replace

func (r *Replacer) Replace(s string) string

Replace返回s的副本,其中包含所有已执行的替换.

func (*Replacer) WriteString

func (r *Replacer) WriteString(w io.Writer, s string) (n int, err error)

WriteString将s写入w,并执行所有替换操作.

Bugs

by  ICOPY.SITE