...

パッケージ strings

import "strings"
概要
目次

概要 ▾

strings パッケージは UTF-8 エンコードされた文字列を操作するシンプルな関数を提供します。

GoにおけるUTF-8文字列については,https://blog.golang.org/strings をご覧ください。

目次 ▾

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

パッケージファイル

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

func Compare 1.5

func Compare(a, b string) int

Compare は2つの文字列を辞書順で比較します。 a==b なら 0,a < b なら -1,a > b なら +1 を返します。

Compare はbytesパッケージとの対称性を保つために含められています。 ビルトインの文字列比較演算子 ==, <, > 等を使う方が見通しが良くなり, スピードも常に速くなります。

コード:

fmt.Println(strings.Compare("a", "b"))
fmt.Println(strings.Compare("a", "a"))
fmt.Println(strings.Compare("b", "a"))

出力:

-1
0
1

func Contains

func Contains(s, substr string) bool

Contains はs中にsubstrが存在するかを返します。

コード:

fmt.Println(strings.Contains("seafood", "foo"))
fmt.Println(strings.Contains("seafood", "bar"))
fmt.Println(strings.Contains("seafood", ""))
fmt.Println(strings.Contains("", ""))

出力:

true
false
true
true

func ContainsAny

func ContainsAny(s, chars string) bool

ContainsAny は chars 中のUnicodeコードポイントのいずれかがs中に存在するかを返します。

コード:

fmt.Println(strings.ContainsAny("team", "i"))
fmt.Println(strings.ContainsAny("fail", "ui"))
fmt.Println(strings.ContainsAny("ure", "ui"))
fmt.Println(strings.ContainsAny("failure", "ui"))
fmt.Println(strings.ContainsAny("foo", ""))
fmt.Println(strings.ContainsAny("", ""))

出力:

false
true
true
true
false
false

func ContainsRune

func ContainsRune(s string, r rune) bool

ContainsRune はUnicodeコードポイント r が s 中に存在するかを返します。

コード:

// 文字列に特定のUnicodeコードポイントが含まれるか確かめます。
// 例えば,小文字 "a" のコードポイントは 97 です。
fmt.Println(strings.ContainsRune("aardvark", 97))
fmt.Println(strings.ContainsRune("timeout", 97))

出力:

true
false

func Count

func Count(s, substr string) int

Count はsの中にsubstrが重ならずに出現する回数を返します。 substrが空文字の場合,s中のUnicodeコードポイント数+1を返します。

コード:

fmt.Println(strings.Count("cheese", "e"))
fmt.Println(strings.Count("five", "")) // before & after each rune

出力:

3
5

func EqualFold

func EqualFold(s, t string) bool

EqualFold は s と t を UTF-8 文字列とみなして,Unicode ケースを無視した時に, 等しいかどうかを返します。

コード:

fmt.Println(strings.EqualFold("Go", "go"))

出力:

true

func Fields

func Fields(s string) []string

Fields は文字列sを1文字以上の連続した空白文字の前後で区切り,区切られた部分文字列のスライスを返します。 空白文字はunicode.IsSpaceで定義されています。 sが空白文字のみからなっている場合,空のスライスを返します。

コード:

fmt.Printf("Fields are: %q", strings.Fields("  foo bar  baz   "))

出力:

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

func FieldsFunc

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

FieldsFunc はf(c)を満たすUnicodeコードポイントで区切り,sの部分文字列のスライスを返します。 sのすべてのコードポイントがf(c)を満たす,あるいは 空文字列の場合,空のスライスを返します。 FieldsFunc はf(c)を呼ぶ順序を保証しません。 fが一貫した結果を返さないなら,FieldsFuncはクラッシュする可能性があります。

コード:

f := func(c rune) bool {
    return !unicode.IsLetter(c) && !unicode.IsNumber(c)
}
fmt.Printf("Fields are: %q", strings.FieldsFunc("  foo1;bar2,baz3...", f))

出力:

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

func HasPrefix

func HasPrefix(s, prefix string) bool

HasPrefix は文字列sがprefixから始まるかチェックします。

コード:

fmt.Println(strings.HasPrefix("Gopher", "Go"))
fmt.Println(strings.HasPrefix("Gopher", "C"))
fmt.Println(strings.HasPrefix("Gopher", ""))

出力:

true
false
true

func HasSuffix

func HasSuffix(s, suffix string) bool

HasSuffix は文字列sがsuffixで終わるかをチェックします。

コード:

fmt.Println(strings.HasSuffix("Amigo", "go"))
fmt.Println(strings.HasSuffix("Amigo", "O"))
fmt.Println(strings.HasSuffix("Amigo", "Ami"))
fmt.Println(strings.HasSuffix("Amigo", ""))

出力:

true
false
false
true

func Index

func Index(s, substr string) int

Index は,s 中に substr が最初に出現するインデックスを返します。substr が s 中に存在しない場合, -1 を返します。

コード:

fmt.Println(strings.Index("chicken", "ken"))
fmt.Println(strings.Index("chicken", "dmr"))

出力:

4
-1

func IndexAny

func IndexAny(s, chars string) int

IndexAny はcharsに含まれるいずれかのUnicodeコードポイントがs中に最初に出現する場所を返します。 chars中のUnicodeコードポイントのどれもs中に存在しない場合,-1を返します。

コード:

fmt.Println(strings.IndexAny("chicken", "aeiouy"))
fmt.Println(strings.IndexAny("crwth", "aeiouy"))

出力:

2
-1

func IndexByte 1.2

func IndexByte(s string, c byte) int

IndexByte は s 中にcが最初に出現する場所を返します。s中にcが存在しない場合,-1を返します。

コード:

fmt.Println(strings.IndexByte("golang", 'g'))
fmt.Println(strings.IndexByte("gophers", 'h'))
fmt.Println(strings.IndexByte("golang", 'x'))

出力:

0
3
-1

func IndexFunc

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

IndexFunc は,f(c) を満たす最初の Unicode コードポイントのインデックスを返します。 f(c) を満たすものがない場合, -1 を返します。

コード:

f := func(c rune) bool {
    return unicode.Is(unicode.Han, c)
}
fmt.Println(strings.IndexFunc("Hello, 世界", f))
fmt.Println(strings.IndexFunc("Hello, world", f))

出力:

7
-1

func IndexRune

func IndexRune(s string, r rune) int

IndexRune はs中にUnicodeコードポイントrが最初に出現する場所を返します。 存在しない場合,-1を返します。 rをutf8.RuneErrorにすると, 最初の無効なUTF-8バイト列の場所を返します。

コード:

fmt.Println(strings.IndexRune("chicken", 'k'))
fmt.Println(strings.IndexRune("chicken", 'd'))

出力:

4
-1

func Join

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

Join はaの要素をつないで,1つの文字列を作成します。 各要素の間には文字列sepを追加します。

コード:

s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", "))

出力:

foo, bar, baz

func LastIndex

func LastIndex(s, substr string) int

LastIndex は s 中に最後に出現する substr の場所を返します。s 中に substr が存在しない場合,-1を返します。

コード:

fmt.Println(strings.Index("go gopher", "go"))
fmt.Println(strings.LastIndex("go gopher", "go"))
fmt.Println(strings.LastIndex("go gopher", "rodent"))

出力:

0
3
-1

func LastIndexAny

func LastIndexAny(s, chars string) int

LastIndexAny はcharsに含まれるいずれかのUnicodeコードポイントがs中に最後に出現する場所を返します。 chars中のUnicodeコードポイントのどれもs中に存在しない場合,-1を返します。

コード:

fmt.Println(strings.LastIndexAny("go gopher", "go"))
fmt.Println(strings.LastIndexAny("go gopher", "rodent"))
fmt.Println(strings.LastIndexAny("go gopher", "fail"))

出力:

4
8
-1

func LastIndexByte 1.5

func LastIndexByte(s string, c byte) int

LastIndexByte は s 中にcが最後に出現する場所を返します。s中にcが存在しない場合,-1を返します。

コード:

fmt.Println(strings.LastIndexByte("Hello, world", 'l'))
fmt.Println(strings.LastIndexByte("Hello, world", 'o'))
fmt.Println(strings.LastIndexByte("Hello, world", 'x'))

出力:

10
8
-1

func LastIndexFunc

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

LastIndexFunc は,f(c) を満たす最後の Unicode コードポイントのインデックスを返します。 f(c) を満たすものがない場合, -1 を返します。

コード:

fmt.Println(strings.LastIndexFunc("go 123", unicode.IsNumber))
fmt.Println(strings.LastIndexFunc("123 go", unicode.IsNumber))
fmt.Println(strings.LastIndexFunc("go", unicode.IsNumber))

出力:

5
2
-1

func Map

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

Map は文字列sの各文字をmapping関数を使って置き換えた文字列を返します。 mapping が負の値を返す場合,その文字は置き換えられるのではなく, 文字列から除かれます。

コード:

rot13 := func(r rune) rune {
    switch {
    case r >= 'A' && r <= 'Z':
        return 'A' + (r-'A'+13)%26
    case r >= 'a' && r <= 'z':
        return 'a' + (r-'a'+13)%26
    }
    return r
}
fmt.Println(strings.Map(rot13, "'Twas brillig and the slithy gopher..."))

出力:

'Gjnf oevyyvt naq gur fyvgul tbcure...

func Repeat

func Repeat(s string, count int) string

Repeat は文字列sをcount回繰り返した文字列を返します。

countが負の場合,あるいは, (len(s) * count)がオーバーフローする場合,パニックします。

コード:

fmt.Println("ba" + strings.Repeat("na", 2))

出力:

banana

func Replace

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

Replace は 重ならずに old が出現する最初の n 回目まで, old を new に置き換えます。 old が空文字列の場合,文字列の最初とそれぞれの UTF-8 文字のあとにマッチし, k文字ある文字列に対し,k+1 回置き換えることになります。 n < 0 の場合,置換の回数に制限はありません。

コード:

fmt.Println(strings.Replace("oink oink oink", "k", "ky", 2))
fmt.Println(strings.Replace("oink oink oink", "oink", "moo", -1))

出力:

oinky oinky oink
moo moo moo

func ReplaceAll 1.12

func ReplaceAll(s, old, new string) string

ReplaceAll は重ならずに出現するすべての old を new に置き換えます。 old が空文字列の場合,文字列の最初とそれぞれの UTF-8 文字のあとにマッチし, k文字ある文字列に対し,k+1 回置き換えることになります。

コード:

fmt.Println(strings.ReplaceAll("oink oink oink", "oink", "moo"))

出力:

moo moo moo

func Split

func Split(s, sep string) []string

Split はsをsepで区切り, sep間の部分文字列のスライスを返します。

sepがs中に存在せず,sepが空でないなら, Split はsのみからなる長さ1のスライスを返します。

sepが空文字の場合,SplitはUTF-8文字ごとに区切ります。 sとsep両方空の場合,Split は空のスライスを返します。

Splitは,SplitN の数を-1に設定した場合と同じ結果になります。

コード:

fmt.Printf("%q\n", strings.Split("a,b,c", ","))
fmt.Printf("%q\n", strings.Split("a man a plan a canal panama", "a "))
fmt.Printf("%q\n", strings.Split(" xyz ", ""))
fmt.Printf("%q\n", strings.Split("", "Bernardo O'Higgins"))

出力:

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

func SplitAfter

func SplitAfter(s, sep string) []string

SplitAfter はsをsepの後で部分文字列に区切り, そのスライスを返します。

sepがs中に存在せず,sepが空でないなら, SplitAfter はsのみからなる長さ1のスライスを返します。

sepが空文字の場合,SplitAfterはUTF-8文字ごとに区切ります。 sとsep両方空の場合,SplitAfter は空のスライスを返します。

SplitAfterは,SplitAfterN の数を-1に設定した場合と同じ結果になります。

コード:

fmt.Printf("%q\n", strings.SplitAfter("a,b,c", ","))

出力:

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

func SplitAfterN

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

SplitAfterN はsをsepの後で部分文字列に区切り, そのスライスを返します。

n は部分文字列数をいくつ返すかを設定します。
n > 0: 最大でn個の部分文字列。最後の文字列は残りの文字列で,sepで区切られていません。
n == 0: nil (ゼロ個の部分文字列)
n < 0: すべての部分文字列

sとsepが空文字等の特別な場合は, SplitAfter のドキュメントを参照してください。

コード:

fmt.Printf("%q\n", strings.SplitAfterN("a,b,c", ",", 2))

出力:

["a," "b,c"]

func SplitN

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

SplitN はsをsepで区切り, 間の部分文字列のスライスを返します。

n は部分文字列数をいくつ返すかを設定します。
n > 0: 最大でn個の部分文字列。最後の文字列は残りの文字列で,sepで区切られていません。
n == 0: nil (ゼロ個の部分文字列)
n < 0: すべての部分文字列

sとsepが空文字等の特別な場合は, Split のドキュメントを参照してください。

コード:

fmt.Printf("%q\n", strings.SplitN("a,b,c", ",", 2))
z := strings.SplitN("a,b,c", ",", 0)
fmt.Printf("%q (nil = %v)\n", z, z == nil)

出力:

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

func Title

func Title(s string) string

Title returns a copy of the string s with all Unicode letters that begin words mapped to their Unicode title case.

BUG(rsc): The rule Title uses for word boundaries does not handle Unicode punctuation properly.

コード:

// Compare this example to the ToTitle example.
fmt.Println(strings.Title("her royal highness"))
fmt.Println(strings.Title("loud noises"))
fmt.Println(strings.Title("хлеб"))

出力:

Her Royal Highness
Loud Noises
Хлеб

func ToLower

func ToLower(s string) string

ToLower returns s with all Unicode letters mapped to their lower case.

コード:

fmt.Println(strings.ToLower("Gopher"))

出力:

gopher

func ToLowerSpecial

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

ToLowerSpecial は,文字列 s のすべての Unicode 文字をケースマッピング c を用いて小文字に変換した文字列を返します。

コード:

fmt.Println(strings.ToLowerSpecial(unicode.TurkishCase, "Önnek İş"))

出力:

önnek iş

func ToTitle

func ToTitle(s string) string

ToTitle returns a copy of the string s with all Unicode letters mapped to their Unicode title case.

コード:

// Compare this example to the Title example.
fmt.Println(strings.ToTitle("her royal highness"))
fmt.Println(strings.ToTitle("loud noises"))
fmt.Println(strings.ToTitle("хлеб"))

出力:

HER ROYAL HIGHNESS
LOUD NOISES
ХЛЕБ

func ToTitleSpecial

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

ToTitleSpecial returns a copy of the string s with all Unicode letters mapped to their Unicode title case, giving priority to the special casing rules.

コード:

fmt.Println(strings.ToTitleSpecial(unicode.TurkishCase, "dünyanın ilk borsa yapısı Aizonai kabul edilir"))

出力:

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

func ToUpper

func ToUpper(s string) string

ToUpper returns s with all Unicode letters mapped to their upper case.

コード:

fmt.Println(strings.ToUpper("Gopher"))

出力:

GOPHER

func ToUpperSpecial

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

ToUpperSpecial は,文字列 s のすべての Unicode 文字をケースマッピング c を用いて大文字に変換した文字列を返します。

コード:

fmt.Println(strings.ToUpperSpecial(unicode.TurkishCase, "örnek iş"))

出力:

ÖRNEK İŞ

func ToValidUTF8

func ToValidUTF8(s, replacement string) string

ToValidUTF8 returns a copy of the string s with each run of invalid UTF-8 byte sequences replaced by the replacement string, which may be empty.

func Trim

func Trim(s string, cutset string) string

Trim は,s の頭と末尾の cutset に含まれる Unicode コードポイントを除いた スライスを返します。

コード:

fmt.Print(strings.Trim("¡¡¡Hello, Gophers!!!", "!¡"))

出力:

Hello, Gophers

func TrimFunc

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

TrimFunc は,文字列の頭と末尾から f(c) を満たす Unicode コードポイントを除いた s のスライスを返します。

コード:

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

出力:

Hello, Gophers

func TrimLeft

func TrimLeft(s string, cutset string) string

TrimLeft は,s の頭の cutset に含まれる Unicode コードポイントを除いた スライスを返します。

接頭文字を除くには,かわりに TrimPrefix を使います。

コード:

fmt.Print(strings.TrimLeft("¡¡¡Hello, Gophers!!!", "!¡"))

出力:

Hello, Gophers!!!

func TrimLeftFunc

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

TrimLeftFunc は,文字列の頭から f(c) を満たす Unicode コードポイントを除いた s のスライスを返します。

コード:

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

出力:

Hello, Gophers!!!

func TrimPrefix 1.1

func TrimPrefix(s, prefix string) string

TrimPrefix は,s から接頭辞 prefix を取り除いた文字列を返します。 s が prefix で始まらない場合は,s をそのまま返します。

コード:

var s = "¡¡¡Hello, Gophers!!!"
s = strings.TrimPrefix(s, "¡¡¡Hello, ")
s = strings.TrimPrefix(s, "¡¡¡Howdy, ")
fmt.Print(s)

出力:

Gophers!!!

func TrimRight

func TrimRight(s string, cutset string) string

TrimLeft は,s の末尾の cutset に含まれる Unicode コードポイントを除いた スライスを返します。

接尾文字を除くには,かわりに TrimSuffix を使います。

コード:

fmt.Print(strings.TrimRight("¡¡¡Hello, Gophers!!!", "!¡"))

出力:

¡¡¡Hello, Gophers

func TrimRightFunc

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

TrimLeftFunc は,文字列の末尾から f(c) を満たす Unicode コードポイントを除いた s のスライスを返します。

コード:

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

出力:

¡¡¡Hello, Gophers

func TrimSpace

func TrimSpace(s string) string

TrimSpace は,s の頭と末尾の Unicode で定義された空白をすべて取り除いた スライスを返します。

コード:

fmt.Println(strings.TrimSpace(" \t\n Hello, Gophers \n\t\r\n"))

出力:

Hello, Gophers

func TrimSuffix 1.1

func TrimSuffix(s, suffix string) string

TrimSuffix は,s から接尾辞 suffix を取り除いた文字列を返します。 s が suffix で終わらない場合は,s をそのまま返します。

コード:

var s = "¡¡¡Hello, Gophers!!!"
s = strings.TrimSuffix(s, ", Gophers!!!")
s = strings.TrimSuffix(s, ", Marmots!!!")
fmt.Print(s)

出力:

¡¡¡Hello

type Builder 1.10

Builder はWrite関数を使って効率的に文字列を作成します。 メモリコピーを最小限にします。ゼロ値で使えます。 ゼロ値以外のBuilderをコピーしないでください。

type Builder struct {
    // エクスポートされていないフィールドがあります
}

コード:

var b strings.Builder
for i := 3; i >= 1; i-- {
    fmt.Fprintf(&b, "%d...", i)
}
b.WriteString("ignition")
fmt.Println(b.String())

出力:

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

func (*Builder) Cap 1.12

func (b *Builder) Cap() int

Cap は Builder 中のバイトスライスの容量を返します。 すでに書き込まれたバイトを含む,作成中の文字列のために割り当てられたスペースの容量 となります。

func (*Builder) Grow 1.10

func (b *Builder) Grow(n int)

Grow は追加nバイトの容量を保証し,必要に応じてbの容量を増やします。 Grow(n)の後,再度のアロケーションなしに,bに少なくともnバイトを書き込むことができます。 nが負の場合,Growはパニックします。

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()

Reset は Builder を空にします。

func (*Builder) String 1.10

func (b *Builder) String() string

String は作成された文字列を返します。

func (*Builder) Write 1.10

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

Write はpの内容をバッファ b に追加します。 Write はいつも 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 {
    // エクスポートされていないフィールドがあります
}

func NewReader

func NewReader(s string) *Reader

NewReader はsから読む新しい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)

Reset により,Readerはsから読むようになります。

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 は文字列の元々の長さを返します。 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 は複数の文字列を置換文字列で置換します。 複数のゴルーチンで並行に用いても安全です。

type Replacer struct {
    // エクスポートされていないフィールドがあります
}

func NewReplacer

func NewReplacer(oldnew ...string) *Replacer

NewReplacer returns a new Replacer from a list of old, new string pairs. Replacements are performed in the order they appear in the target string, without overlapping matches. The old string comparisons are done in argument order.

NewReplacer panics if given an odd number of arguments.

コード:

r := strings.NewReplacer("<", "&lt;", ">", "&gt;")
fmt.Println(r.Replace("This is <b>HTML</b>!"))

出力:

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