github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/strings/strings.go (about)

     1  // Copyright 2009 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // Package strings implements simple functions to manipulate UTF-8 encoded strings.
     6  //
     7  // For information about UTF-8 strings in Go, see https://blog.golang.org/strings.
     8  package strings
     9  
    10  import (
    11  	"github.com/shogo82148/std/unicode"
    12  )
    13  
    14  // Countは、s内の重複しないsubstrのインスタンス数を数えます。
    15  // substrが空の文字列の場合、Countはs内のUnicodeコードポイントの数に1を加えたものを返します。
    16  func Count(s, substr string) int
    17  
    18  // Containsは、substrがs内に含まれているかどうかを報告します。
    19  func Contains(s, substr string) bool
    20  
    21  // ContainsAnyは、chars内の任意のUnicodeコードポイントがs内に含まれているかどうかを報告します。
    22  func ContainsAny(s, chars string) bool
    23  
    24  // ContainsRuneは、Unicodeコードポイントrがs内に含まれているかどうかを報告します。
    25  func ContainsRune(s string, r rune) bool
    26  
    27  // ContainsFuncは、s内の任意のUnicodeコードポイントrがf(r)を満たすかどうかを報告します。
    28  func ContainsFunc(s string, f func(rune) bool) bool
    29  
    30  // LastIndexは、s内のsubstrの最後のインスタンスのインデックスを返します。
    31  // substrがs内に存在しない場合は-1を返します。
    32  func LastIndex(s, substr string) int
    33  
    34  // IndexByteは、s内の最初のcのインスタンスのインデックスを返します。
    35  // cがsに存在しない場合は-1を返します。
    36  func IndexByte(s string, c byte) int
    37  
    38  // IndexRuneは、Unicodeコードポイントrの最初のインスタンスのインデックスを返します。
    39  // rがsに存在しない場合は-1を返します。
    40  // rがutf8.RuneErrorの場合、無効なUTF-8バイトシーケンスの最初のインスタンスを返します。
    41  func IndexRune(s string, r rune) int
    42  
    43  // IndexAnyは、sにcharsの任意のUnicodeコードポイントの最初のインスタンスのインデックスを返します。
    44  // charsのUnicodeコードポイントがsに存在しない場合は-1を返します。
    45  func IndexAny(s, chars string) int
    46  
    47  // LastIndexAnyは、sにcharsの任意のUnicodeコードポイントの最後のインスタンスのインデックスを返します。
    48  // charsのUnicodeコードポイントがsに存在しない場合は-1を返します。
    49  func LastIndexAny(s, chars string) int
    50  
    51  // LastIndexByteは、sの最後のインスタンスのインデックスを返します。
    52  // cがsに存在しない場合は-1を返します。
    53  func LastIndexByte(s string, c byte) int
    54  
    55  // SplitNは、sをsepで区切った部分文字列のスライスを返します。
    56  //
    57  // countは、返す部分文字列の数を決定します。
    58  //
    59  //	n > 0:最大n個の部分文字列。最後の部分文字列は区切り文字以降の残りの部分です。
    60  //	n == 0:結果はnil(部分文字列がゼロ個)
    61  //	n < 0:すべての部分文字列
    62  //
    63  // sとsepのエッジケース(空の文字列など)は、 [Split] のドキュメントで説明されているように処理されます。
    64  //
    65  // 最初の区切り文字を基準に分割するには、Cutを参照してください。
    66  func SplitN(s, sep string, n int) []string
    67  
    68  // SplitAfterNは、sをsepの後にスライスし、それらの部分文字列のスライスを返します。
    69  //
    70  // countは、返す部分文字列の数を決定します。
    71  //
    72  //	n > 0:最大n個の部分文字列。最後の部分文字列は区切り文字以降の残りの部分です。
    73  //	n == 0:結果はnil(部分文字列がゼロ個)
    74  //	n < 0:すべての部分文字列
    75  //
    76  // sとsepのエッジケース(空の文字列など)は、SplitAfterのドキュメントで説明されているように処理されます。
    77  func SplitAfterN(s, sep string, n int) []string
    78  
    79  // Splitは、sをsepで区切り、それらの区切り文字の間の部分文字列のスライスを返します。
    80  //
    81  // sがsepを含まず、sepが空でない場合、Splitは長さ1のスライスを返します。その唯一の要素はsです。
    82  //
    83  // sepが空の場合、Splitは各UTF-8シーケンスの後に分割します。sとsepの両方が空の場合、Splitは空のスライスを返します。
    84  //
    85  // countが-1の [SplitN] と同等です。
    86  //
    87  // 最初の区切り文字を基準に分割するには、Cutを参照してください。
    88  func Split(s, sep string) []string
    89  
    90  // SplitAfterは、sをsepの後にスライスし、それらの部分文字列のスライスを返します。
    91  //
    92  // sがsepを含まず、sepが空でない場合、SplitAfterは長さ1のスライスを返します。その唯一の要素はsです。
    93  //
    94  // sepが空の場合、SplitAfterは各UTF-8シーケンスの後に分割します。sとsepの両方が空の場合、SplitAfterは空のスライスを返します。
    95  //
    96  // countが-1の [SplitAfterN] と同等です。
    97  func SplitAfter(s, sep string) []string
    98  
    99  // Fieldsは、sをUnicode.IsSpaceによって定義される1つ以上の連続する空白文字の各インスタンスで分割し、sの部分文字列のスライスまたは空のスライスを返します。
   100  func Fields(s string) []string
   101  
   102  // FieldsFuncは、Unicodeコードポイントcがf(c)を満たす連続するランで文字列sを分割し、sのスライスの配列を返します。
   103  // sのすべてのコードポイントがf(c)を満たすか、文字列が空の場合、空のスライスが返されます。
   104  //
   105  // FieldsFuncは、f(c)を呼び出す順序について保証せず、fが常に同じ値を返すことを前提としています。
   106  func FieldsFunc(s string, f func(rune) bool) []string
   107  
   108  // Joinは、最初の引数の要素を連結して単一の文字列を作成します。区切り文字列sepは、結果の文字列の要素間に配置されます。
   109  func Join(elems []string, sep string) string
   110  
   111  // HasPrefixは、文字列sがprefixで始まるかどうかを報告します。
   112  func HasPrefix(s, prefix string) bool
   113  
   114  // HasSuffixは、文字列sがsuffixで終わるかどうかを報告します。
   115  func HasSuffix(s, suffix string) bool
   116  
   117  // Mapは、マッピング関数に従ってすべての文字を変更した文字列sのコピーを返します。
   118  // マッピング関数が負の値を返す場合、文字は置換されずに文字列から削除されます。
   119  func Map(mapping func(rune) rune, s string) string
   120  
   121  // Repeatは、文字列sのcount個のコピーからなる新しい文字列を返します。
   122  //
   123  // countが負の場合、または(len(s) * count)の結果がオーバーフローする場合、パニックが発生します。
   124  func Repeat(s string, count int) string
   125  
   126  // ToUpperは、すべてのUnicode文字を大文字にマップしたsを返します。
   127  func ToUpper(s string) string
   128  
   129  // ToLowerは、すべてのUnicode文字を小文字にマップしたsを返します。
   130  func ToLower(s string) string
   131  
   132  // ToTitleは、すべてのUnicode文字をUnicodeタイトルケースにマップしたsのコピーを返します。
   133  func ToTitle(s string) string
   134  
   135  // ToUpperSpecialは、Unicode文字をすべて、cで指定されたケースマッピングを使用して大文字にマップしたsのコピーを返します。
   136  func ToUpperSpecial(c unicode.SpecialCase, s string) string
   137  
   138  // ToLowerSpecialは、Unicode文字をすべて、cで指定されたケースマッピングを使用して小文字にマップしたsのコピーを返します。
   139  func ToLowerSpecial(c unicode.SpecialCase, s string) string
   140  
   141  // ToTitleSpecialは、Unicode文字をすべて、特別なケースルールに優先してUnicodeタイトルケースにマップしたsのコピーを返します。
   142  func ToTitleSpecial(c unicode.SpecialCase, s string) string
   143  
   144  // ToValidUTF8は、無効なUTF-8バイトシーケンスのランを置換文字列で置き換えたsのコピーを返します。置換文字列は空にすることができます。
   145  func ToValidUTF8(s, replacement string) string
   146  
   147  // Titleは、単語の先頭を表すすべてのUnicode文字をUnicodeタイトルケースにマップしたsのコピーを返します。
   148  //
   149  // Deprecated: Titleが単語の境界に使用するルールは、Unicode句読点を適切に処理しません。代わりに、golang.org/x/text/casesを使用してください。
   150  func Title(s string) string
   151  
   152  // TrimLeftFuncは、f(c)がtrueを返す最初のUnicodeコードポイントcを含まないように、文字列sの先頭からすべてのUnicodeコードポイントcを削除したスライスを返します。
   153  func TrimLeftFunc(s string, f func(rune) bool) string
   154  
   155  // TrimRightFuncは、f(c)がtrueを返す最後のUnicodeコードポイントcを含まないように、文字列sの末尾からすべてのUnicodeコードポイントcを削除したスライスを返します。
   156  func TrimRightFunc(s string, f func(rune) bool) string
   157  
   158  // TrimFuncは、f(c)がtrueを返す最初と最後のUnicodeコードポイントcを含まないように、文字列sの先頭と末尾からすべてのUnicodeコードポイントcを削除したスライスを返します。
   159  func TrimFunc(s string, f func(rune) bool) string
   160  
   161  // IndexFuncは、f(c)がtrueを返す最初のUnicodeコードポイントのインデックスを返します。見つからない場合は-1を返します。
   162  func IndexFunc(s string, f func(rune) bool) int
   163  
   164  // LastIndexFuncは、f(c)がtrueを返す最後のUnicodeコードポイントのインデックスを返します。見つからない場合は-1を返します。
   165  func LastIndexFunc(s string, f func(rune) bool) int
   166  
   167  // Trimは、cutsetに含まれるすべての先頭と末尾のUnicodeコードポイントを削除した文字列sのスライスを返します。
   168  func Trim(s, cutset string) string
   169  
   170  // TrimLeftは、cutsetに含まれるすべての先頭のUnicodeコードポイントを削除した文字列sのスライスを返します。
   171  //
   172  // 接頭辞を削除するには、代わりに [TrimPrefix] を使用してください。
   173  func TrimLeft(s, cutset string) string
   174  
   175  // TrimRightは、cutsetに含まれるすべての末尾のUnicodeコードポイントを削除した文字列sのスライスを返します。
   176  //
   177  // 接尾辞を削除するには、代わりに [TrimSuffix] を使用してください。
   178  func TrimRight(s, cutset string) string
   179  
   180  // TrimSpaceは、Unicodeで定義されるように、すべての先頭と末尾の空白を削除した文字列sのスライスを返します。
   181  func TrimSpace(s string) string
   182  
   183  // TrimPrefixは、指定された接頭辞文字列を除いたsを返します。
   184  // sが接頭辞で始まらない場合、sは変更されずにそのまま返されます。
   185  func TrimPrefix(s, prefix string) string
   186  
   187  // TrimSuffixは、指定された接尾辞文字列を除いたsを返します。
   188  // sが接尾辞で終わらない場合、sは変更されずにそのまま返されます。
   189  func TrimSuffix(s, suffix string) string
   190  
   191  // Replaceは、古いものの最初のn個の重複しないインスタンスが新しいものに置き換えられた文字列sのコピーを返します。
   192  // oldが空の場合、文字列の先頭と各UTF-8シーケンスの後に一致し、kルーン文字列に対してk+1の置換が生成されます。
   193  // n < 0の場合、置換の数に制限はありません。
   194  func Replace(s, old, new string, n int) string
   195  
   196  // ReplaceAllは、古いもののすべての重複しないインスタンスが新しいものに置き換えられた文字列sのコピーを返します。
   197  // oldが空の場合、文字列の先頭と各UTF-8シーケンスの後に一致し、kルーン文字列に対してk+1の置換が生成されます。
   198  func ReplaceAll(s, old, new string) string
   199  
   200  // EqualFoldは、UTF-8文字列として解釈されたsとtが、単純なUnicodeの大文字小文字を区別しない比較において等しいかどうかを報告します。
   201  // これは、大文字小文字を区別しない形式の大文字小文字を区別しない性質です。
   202  func EqualFold(s, t string) bool
   203  
   204  // Indexは、s内のsubstrの最初のインスタンスのインデックスを返します。substrがsに存在しない場合は-1を返します。
   205  func Index(s, substr string) int
   206  
   207  // 最初の sep のインスタンスを中心に s をスライスし、
   208  // sep の前と後のテキストを返します。
   209  // found は、sep が s に現れるかどうかを報告します。
   210  // sep が s に現れない場合、cut は s、""、false を返します。
   211  func Cut(s, sep string) (before, after string, found bool)
   212  
   213  // CutPrefix は、指定された先頭接頭辞文字列を除いた s を返し、接頭辞が見つかったかどうかを報告します。
   214  // s が prefix で始まらない場合、CutPrefix は s、false を返します。
   215  // prefix が空の文字列の場合、CutPrefix は s、true を返します。
   216  func CutPrefix(s, prefix string) (after string, found bool)
   217  
   218  // CutSuffix は、指定された末尾接尾辞文字列を除いた s を返し、接尾辞が見つかったかどうかを報告します。
   219  // s が suffix で終わらない場合、CutSuffix は s、false を返します。
   220  // suffix が空の文字列の場合、CutSuffix は s、true を返します。
   221  func CutSuffix(s, suffix string) (before string, found bool)