Brad Fitzpatrick | 10f1b6a | 2012-02-03 11:17:55 -0800 | [diff] [blame] | 1 | // Copyright 2012 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_test |
| 6 | |
| 7 | import ( |
| 8 | "fmt" |
| 9 | "strings" |
Robin Eklind | a6ebc88 | 2013-12-16 09:43:03 -0800 | [diff] [blame] | 10 | "unicode" |
Brad Fitzpatrick | 10f1b6a | 2012-02-03 11:17:55 -0800 | [diff] [blame] | 11 | ) |
| 12 | |
Brad Fitzpatrick | 10f1b6a | 2012-02-03 11:17:55 -0800 | [diff] [blame] | 13 | func ExampleFields() { |
| 14 | fmt.Printf("Fields are: %q", strings.Fields(" foo bar baz ")) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 15 | // Output: Fields are: ["foo" "bar" "baz"] |
Brad Fitzpatrick | 10f1b6a | 2012-02-03 11:17:55 -0800 | [diff] [blame] | 16 | } |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 17 | |
Robin Eklind | a6ebc88 | 2013-12-16 09:43:03 -0800 | [diff] [blame] | 18 | func ExampleFieldsFunc() { |
| 19 | f := func(c rune) bool { |
| 20 | return !unicode.IsLetter(c) && !unicode.IsNumber(c) |
| 21 | } |
| 22 | fmt.Printf("Fields are: %q", strings.FieldsFunc(" foo1;bar2,baz3...", f)) |
| 23 | // Output: Fields are: ["foo1" "bar2" "baz3"] |
| 24 | } |
| 25 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 26 | func ExampleContains() { |
| 27 | fmt.Println(strings.Contains("seafood", "foo")) |
| 28 | fmt.Println(strings.Contains("seafood", "bar")) |
| 29 | fmt.Println(strings.Contains("seafood", "")) |
| 30 | fmt.Println(strings.Contains("", "")) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 31 | // Output: |
| 32 | // true |
| 33 | // false |
| 34 | // true |
| 35 | // true |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 36 | } |
| 37 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 38 | func ExampleContainsAny() { |
| 39 | fmt.Println(strings.ContainsAny("team", "i")) |
| 40 | fmt.Println(strings.ContainsAny("failure", "u & i")) |
| 41 | fmt.Println(strings.ContainsAny("foo", "")) |
| 42 | fmt.Println(strings.ContainsAny("", "")) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 43 | // Output: |
| 44 | // false |
| 45 | // true |
| 46 | // false |
| 47 | // false |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 48 | } |
| 49 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 50 | func ExampleCount() { |
| 51 | fmt.Println(strings.Count("cheese", "e")) |
| 52 | fmt.Println(strings.Count("five", "")) // before & after each rune |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 53 | // Output: |
| 54 | // 3 |
| 55 | // 5 |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 56 | } |
| 57 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 58 | func ExampleEqualFold() { |
| 59 | fmt.Println(strings.EqualFold("Go", "go")) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 60 | // Output: true |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 61 | } |
| 62 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 63 | func ExampleIndex() { |
| 64 | fmt.Println(strings.Index("chicken", "ken")) |
| 65 | fmt.Println(strings.Index("chicken", "dmr")) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 66 | // Output: |
| 67 | // 4 |
| 68 | // -1 |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 69 | } |
| 70 | |
Robin Eklind | ab9b2ae | 2013-12-16 10:44:23 -0800 | [diff] [blame] | 71 | func ExampleIndexFunc() { |
| 72 | f := func(c rune) bool { |
| 73 | return unicode.Is(unicode.Han, c) |
| 74 | } |
| 75 | fmt.Println(strings.IndexFunc("Hello, 世界", f)) |
| 76 | fmt.Println(strings.IndexFunc("Hello, world", f)) |
| 77 | // Output: |
| 78 | // 7 |
| 79 | // -1 |
| 80 | } |
| 81 | |
Daniel Lidén | 4e23b69 | 2013-12-16 10:50:56 -0800 | [diff] [blame] | 82 | func ExampleIndexAny() { |
| 83 | fmt.Println(strings.IndexAny("chicken", "aeiouy")) |
| 84 | fmt.Println(strings.IndexAny("crwth", "aeiouy")) |
| 85 | // Output: |
| 86 | // 2 |
| 87 | // -1 |
| 88 | } |
| 89 | |
Volker Dobler | 06e18ca5 | 2012-03-05 22:19:51 +1100 | [diff] [blame] | 90 | func ExampleIndexRune() { |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 91 | fmt.Println(strings.IndexRune("chicken", 'k')) |
| 92 | fmt.Println(strings.IndexRune("chicken", 'd')) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 93 | // Output: |
| 94 | // 4 |
| 95 | // -1 |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 96 | } |
| 97 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 98 | func ExampleLastIndex() { |
| 99 | fmt.Println(strings.Index("go gopher", "go")) |
| 100 | fmt.Println(strings.LastIndex("go gopher", "go")) |
| 101 | fmt.Println(strings.LastIndex("go gopher", "rodent")) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 102 | // Output: |
| 103 | // 0 |
| 104 | // 3 |
| 105 | // -1 |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 106 | } |
| 107 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 108 | func ExampleJoin() { |
| 109 | s := []string{"foo", "bar", "baz"} |
| 110 | fmt.Println(strings.Join(s, ", ")) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 111 | // Output: foo, bar, baz |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 112 | } |
| 113 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 114 | func ExampleRepeat() { |
| 115 | fmt.Println("ba" + strings.Repeat("na", 2)) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 116 | // Output: banana |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 117 | } |
| 118 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 119 | func ExampleReplace() { |
| 120 | fmt.Println(strings.Replace("oink oink oink", "k", "ky", 2)) |
| 121 | fmt.Println(strings.Replace("oink oink oink", "oink", "moo", -1)) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 122 | // Output: |
| 123 | // oinky oinky oink |
| 124 | // moo moo moo |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 125 | } |
| 126 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 127 | func ExampleSplit() { |
| 128 | fmt.Printf("%q\n", strings.Split("a,b,c", ",")) |
| 129 | fmt.Printf("%q\n", strings.Split("a man a plan a canal panama", "a ")) |
| 130 | fmt.Printf("%q\n", strings.Split(" xyz ", "")) |
Andrew Gerrand | d6a3650 | 2012-02-15 13:38:28 +1100 | [diff] [blame] | 131 | fmt.Printf("%q\n", strings.Split("", "Bernardo O'Higgins")) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 132 | // Output: |
| 133 | // ["a" "b" "c"] |
| 134 | // ["" "man " "plan " "canal panama"] |
| 135 | // [" " "x" "y" "z" " "] |
| 136 | // [""] |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 137 | } |
| 138 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 139 | func ExampleSplitN() { |
| 140 | fmt.Printf("%q\n", strings.SplitN("a,b,c", ",", 2)) |
| 141 | z := strings.SplitN("a,b,c", ",", 0) |
| 142 | fmt.Printf("%q (nil = %v)\n", z, z == nil) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 143 | // Output: |
| 144 | // ["a" "b,c"] |
| 145 | // [] (nil = true) |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 146 | } |
| 147 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 148 | func ExampleSplitAfter() { |
| 149 | fmt.Printf("%q\n", strings.SplitAfter("a,b,c", ",")) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 150 | // Output: ["a," "b," "c"] |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 151 | } |
| 152 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 153 | func ExampleSplitAfterN() { |
| 154 | fmt.Printf("%q\n", strings.SplitAfterN("a,b,c", ",", 2)) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 155 | // Output: ["a," "b,c"] |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 156 | } |
| 157 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 158 | func ExampleTitle() { |
| 159 | fmt.Println(strings.Title("her royal highness")) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 160 | // Output: Her Royal Highness |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 161 | } |
| 162 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 163 | func ExampleToTitle() { |
| 164 | fmt.Println(strings.ToTitle("loud noises")) |
| 165 | fmt.Println(strings.ToTitle("хлеб")) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 166 | // Output: |
| 167 | // LOUD NOISES |
| 168 | // ХЛЕБ |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 169 | } |
| 170 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 171 | func ExampleTrim() { |
Robin Eklind | 7b53e32 | 2013-12-16 10:40:28 -0800 | [diff] [blame] | 172 | fmt.Printf("[%q]", strings.Trim(" !!! Achtung! Achtung! !!! ", "! ")) |
| 173 | // Output: ["Achtung! Achtung"] |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 174 | } |
| 175 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 176 | func ExampleMap() { |
| 177 | rot13 := func(r rune) rune { |
| 178 | switch { |
| 179 | case r >= 'A' && r <= 'Z': |
| 180 | return 'A' + (r-'A'+13)%26 |
| 181 | case r >= 'a' && r <= 'z': |
| 182 | return 'a' + (r-'a'+13)%26 |
| 183 | } |
| 184 | return r |
| 185 | } |
| 186 | fmt.Println(strings.Map(rot13, "'Twas brillig and the slithy gopher...")) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 187 | // Output: 'Gjnf oevyyvt naq gur fyvgul tbcure... |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 188 | } |
| 189 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 190 | func ExampleTrimSpace() { |
| 191 | fmt.Println(strings.TrimSpace(" \t\n a lone gopher \n\t\r\n")) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 192 | // Output: a lone gopher |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 193 | } |
| 194 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 195 | func ExampleNewReplacer() { |
| 196 | r := strings.NewReplacer("<", "<", ">", ">") |
| 197 | fmt.Println(r.Replace("This is <b>HTML</b>!")) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 198 | // Output: This is <b>HTML</b>! |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 199 | } |
| 200 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 201 | func ExampleToUpper() { |
| 202 | fmt.Println(strings.ToUpper("Gopher")) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 203 | // Output: GOPHER |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 204 | } |
| 205 | |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 206 | func ExampleToLower() { |
| 207 | fmt.Println(strings.ToLower("Gopher")) |
Andrew Gerrand | 11e113d | 2012-02-16 11:50:28 +1100 | [diff] [blame] | 208 | // Output: gopher |
Brad Fitzpatrick | 71c8b82 | 2012-02-13 14:05:57 +1100 | [diff] [blame] | 209 | } |
Brad Fitzpatrick | e515d80 | 2013-02-01 08:41:25 -0800 | [diff] [blame] | 210 | |
| 211 | func ExampleTrimSuffix() { |
| 212 | var s = "Hello, goodbye, etc!" |
| 213 | s = strings.TrimSuffix(s, "goodbye, etc!") |
| 214 | s = strings.TrimSuffix(s, "planet") |
| 215 | fmt.Print(s, "world!") |
| 216 | // Output: Hello, world! |
| 217 | } |
| 218 | |
| 219 | func ExampleTrimPrefix() { |
| 220 | var s = "Goodbye,, world!" |
| 221 | s = strings.TrimPrefix(s, "Goodbye,") |
| 222 | s = strings.TrimPrefix(s, "Howdy,") |
| 223 | fmt.Print("Hello" + s) |
| 224 | // Output: Hello, world! |
| 225 | } |