github.com/shijuvar/go@v0.0.0-20141209052335-e8f13700b70c/src/strings/example_test.go (about) 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" 10 "unicode" 11 ) 12 13 func ExampleFields() { 14 fmt.Printf("Fields are: %q", strings.Fields(" foo bar baz ")) 15 // Output: Fields are: ["foo" "bar" "baz"] 16 } 17 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 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("", "")) 31 // Output: 32 // true 33 // false 34 // true 35 // true 36 } 37 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("", "")) 43 // Output: 44 // false 45 // true 46 // false 47 // false 48 } 49 50 func ExampleCount() { 51 fmt.Println(strings.Count("cheese", "e")) 52 fmt.Println(strings.Count("five", "")) // before & after each rune 53 // Output: 54 // 3 55 // 5 56 } 57 58 func ExampleEqualFold() { 59 fmt.Println(strings.EqualFold("Go", "go")) 60 // Output: true 61 } 62 63 func ExampleIndex() { 64 fmt.Println(strings.Index("chicken", "ken")) 65 fmt.Println(strings.Index("chicken", "dmr")) 66 // Output: 67 // 4 68 // -1 69 } 70 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 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 90 func ExampleIndexRune() { 91 fmt.Println(strings.IndexRune("chicken", 'k')) 92 fmt.Println(strings.IndexRune("chicken", 'd')) 93 // Output: 94 // 4 95 // -1 96 } 97 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")) 102 // Output: 103 // 0 104 // 3 105 // -1 106 } 107 108 func ExampleJoin() { 109 s := []string{"foo", "bar", "baz"} 110 fmt.Println(strings.Join(s, ", ")) 111 // Output: foo, bar, baz 112 } 113 114 func ExampleRepeat() { 115 fmt.Println("ba" + strings.Repeat("na", 2)) 116 // Output: banana 117 } 118 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)) 122 // Output: 123 // oinky oinky oink 124 // moo moo moo 125 } 126 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 ", "")) 131 fmt.Printf("%q\n", strings.Split("", "Bernardo O'Higgins")) 132 // Output: 133 // ["a" "b" "c"] 134 // ["" "man " "plan " "canal panama"] 135 // [" " "x" "y" "z" " "] 136 // [""] 137 } 138 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) 143 // Output: 144 // ["a" "b,c"] 145 // [] (nil = true) 146 } 147 148 func ExampleSplitAfter() { 149 fmt.Printf("%q\n", strings.SplitAfter("a,b,c", ",")) 150 // Output: ["a," "b," "c"] 151 } 152 153 func ExampleSplitAfterN() { 154 fmt.Printf("%q\n", strings.SplitAfterN("a,b,c", ",", 2)) 155 // Output: ["a," "b,c"] 156 } 157 158 func ExampleTitle() { 159 fmt.Println(strings.Title("her royal highness")) 160 // Output: Her Royal Highness 161 } 162 163 func ExampleToTitle() { 164 fmt.Println(strings.ToTitle("loud noises")) 165 fmt.Println(strings.ToTitle("хлеб")) 166 // Output: 167 // LOUD NOISES 168 // ХЛЕБ 169 } 170 171 func ExampleTrim() { 172 fmt.Printf("[%q]", strings.Trim(" !!! Achtung! Achtung! !!! ", "! ")) 173 // Output: ["Achtung! Achtung"] 174 } 175 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...")) 187 // Output: 'Gjnf oevyyvt naq gur fyvgul tbcure... 188 } 189 190 func ExampleTrimSpace() { 191 fmt.Println(strings.TrimSpace(" \t\n a lone gopher \n\t\r\n")) 192 // Output: a lone gopher 193 } 194 195 func ExampleNewReplacer() { 196 r := strings.NewReplacer("<", "<", ">", ">") 197 fmt.Println(r.Replace("This is <b>HTML</b>!")) 198 // Output: This is <b>HTML</b>! 199 } 200 201 func ExampleToUpper() { 202 fmt.Println(strings.ToUpper("Gopher")) 203 // Output: GOPHER 204 } 205 206 func ExampleToLower() { 207 fmt.Println(strings.ToLower("Gopher")) 208 // Output: gopher 209 } 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 }