stringsパッケージには、文字列を扱うための関数が用意されています。
ここではその中から一部の関数を紹介します。残りの関数については、ドキュメントを確認してみてください。
| 役割 | 関数 | 目的 |
|---|---|---|
| 大文字・小文字の変換 | ToLower | 文字列を小文字に変換します |
| 大文字・小文字の変換 | ToUpper | 文字列を大文字に変換します |
| 検索 | Contains | 文字列が特定の部分文字列を含むかどうかを調べます |
| 検索 | Count | 重複しない部分文字列の出現回数を数えます |
| 検索 | HasPrefix | 文字列が特定の部分文字列で始まるかどうかを調べます |
| 検索 | HasSuffix | 文字列が特定の部分文字列で終わるかどうかを調べます |
| 検索 | Index | 部分文字列が最初に現れるインデックスを返します。見つからない場合は-1を返します |
| 変更 | Replace | 部分文字列を最大n回置換します |
| 変更 | ReplaceAll | 部分文字列をすべて置換します |
| 変更 | TrimSpace | 先頭と末尾の空白を削除します |
| 分割と結合 | Fields | 文字列を空白で区切って単語に分割します |
| 分割と結合 | FieldsSeq | 単語を1つずつ取り出します |
| 分割と結合 | Join | 文字列のスライスを区切り文字で結合します |
| 分割と結合 | Split | 文字列を区切り文字で部分ごとに分割します |
| 分割と結合 | SplitSeq | 各部分を1つずつ取り出します |
import (
"fmt"
"strings"
)
// Case conversion
strings.ToLower("Gopher") // "gopher"
strings.ToUpper("Gopher") // "GOPHER"
// Searching
strings.Contains("Apple", "le") // true
strings.Index("Apple", "le") // 3
strings.Index("Apple", "xyz") // -1
strings.Count("test", "t") // 2
strings.HasPrefix("Gopher", "Go") // true
strings.HasSuffix("Gopher", "er") // true
// Modifying
strings.TrimSpace(" hello ") // "hello"
strings.Replace("aabbcc", "b", "x", 1) // "aaxbcc"
strings.ReplaceAll("aabbcc", "b", "x") // "aaxxcc"
// Splitting or Joining
strings.Fields(" a b\tc ") // []string{"a", "b", "c"}
strings.Split("a,b,c", ",") // []string{"a", "b", "c"}
strings.Join([]string{"a", "b", "c"}, ",") // "a,b,c"
// You do not need to worry about this range syntax yet.
// It is covered later in the range iteration concept.
for word := range strings.FieldsSeq(" a b\tc ") {
fmt.Println(word)
}
// Output:
// a
// b
// c
for part := range strings.SplitSeq("a,b,c", ",") {
fmt.Println(part)
}
// Output:
// a
// b
// c