golang strings包

001package main
002 
003import (
004    "fmt"
005    "strings"
006    //"unicode/utf8"
007)
008 
009func main() {
010    fmt.Println("查找子串是否在指定的字符串中")
011    fmt.Println(" Contains 函数的用法")
012    fmt.Println(strings.Contains("seafood", "foo")) //true
013    fmt.Println(strings.Contains("seafood", "bar")) //false
014    fmt.Println(strings.Contains("seafood", ""))    //true
015    fmt.Println(strings.Contains("", ""))           //true 这里要特别注意
016    fmt.Println(strings.Contains("我是中国人", "我"))     //true
017 
018    fmt.Println("")
019    fmt.Println(" ContainsAny 函数的用法")
020    fmt.Println(strings.ContainsAny("team", "i"))        // false
021    fmt.Println(strings.ContainsAny("failure", "u & i")) // true
022    fmt.Println(strings.ContainsAny("foo", ""))          // false
023    fmt.Println(strings.ContainsAny("", ""))             // false
024 
025    fmt.Println("")
026    fmt.Println(" ContainsRune 函数的用法")
027    fmt.Println(strings.ContainsRune("我是中国", '我')) // true 注意第二个参数,用的是字符
028 
029    fmt.Println("")
030    fmt.Println(" Count 函数的用法")
031    fmt.Println(strings.Count("cheese", "e")) // 3
032    fmt.Println(strings.Count("five", ""))    // before & after each rune result: 5 , 源码中有实现
033 
034    fmt.Println("")
035    fmt.Println(" EqualFold 函数的用法")
036    fmt.Println(strings.EqualFold("Go", "go")) //大小写忽略
037 
038    fmt.Println("")
039    fmt.Println(" Fields 函数的用法")
040    fmt.Println("Fields are: %q", strings.Fields("  foo bar  baz   ")) //["foo" "bar" "baz"] 返回一个列表
041 
042    //相当于用函数做为参数,支持匿名函数
043    for _, record := range []string{" aaa*1892*122", "aaa\taa\t", "124|939|22"} {
044        fmt.Println(strings.FieldsFunc(record, func(ch rune) bool {
045            switch {
046            case ch > '5':
047                return true
048            }
049            return false
050        }))
051    }
052 
053    fmt.Println("")
054    fmt.Println(" HasPrefix 函数的用法")
055    fmt.Println(strings.HasPrefix("NLT_abc", "NLT")) //前缀是以NLT开头的
056 
057    fmt.Println("")
058    fmt.Println(" HasSuffix 函数的用法")
059    fmt.Println(strings.HasSuffix("NLT_abc", "abc")) //后缀是以NLT开头的
060 
061    fmt.Println("")
062    fmt.Println(" Index 函数的用法")
063    fmt.Println(strings.Index("NLT_abc", "abc")) // 返回第一个匹配字符的位置,这里是4
064    fmt.Println(strings.Index("NLT_abc", "aaa")) // 在存在返回 -1
065    fmt.Println(strings.Index("我是中国人", "中"))     // 在存在返回 6
066 
067    fmt.Println("")
068    fmt.Println(" IndexAny 函数的用法")
069    fmt.Println(strings.IndexAny("我是中国人", "中")) // 在存在返回 6
070    fmt.Println(strings.IndexAny("我是中国人", "和")) // 在存在返回 -1
071 
072    fmt.Println("")
073    fmt.Println(" Index 函数的用法")
074    fmt.Println(strings.IndexRune("NLT_abc", 'b')) // 返回第一个匹配字符的位置,这里是4
075    fmt.Println(strings.IndexRune("NLT_abc", 's')) // 在存在返回 -1
076    fmt.Println(strings.IndexRune("我是中国人", '中'))   // 在存在返回 6
077 
078    fmt.Println("")
079    fmt.Println(" Join 函数的用法")
080    s := []string{"foo", "bar", "baz"}
081    fmt.Println(strings.Join(s, ", ")) // 返回字符串:foo, bar, baz
082 
083    fmt.Println("")
084    fmt.Println(" LastIndex 函数的用法")
085    fmt.Println(strings.LastIndex("go gopher", "go")) // 3
086 
087    fmt.Println("")
088    fmt.Println(" LastIndexAny 函数的用法")
089    fmt.Println(strings.LastIndexAny("go gopher", "go")) // 4
090    fmt.Println(strings.LastIndexAny("我是中国人", "中"))      // 6
091 
092    fmt.Println("")
093    fmt.Println(" Map 函数的用法")
094    rot13 := func(r rune) rune {
095        switch {
096        case r >= 'A' && r <= 'Z':
097            return 'A' + (r-'A'+13)%26
098        case r >= 'a' && r <= 'z':
099            return 'a' + (r-'a'+13)%26
100        }
101        return r
102    }
103    fmt.Println(strings.Map(rot13, "'Twas brillig and the slithy gopher..."))
104 
105    fmt.Println("")
106    fmt.Println(" Repeat 函数的用法")
107    fmt.Println("ba" + strings.Repeat("na", 2)) //banana
108 
109    fmt.Println("")
110    fmt.Println(" Replace 函数的用法")
111    fmt.Println(strings.Replace("oink oink oink", "k", "ky", 2))
112    fmt.Println(strings.Replace("oink oink oink", "oink", "moo", -1))
113 
114    fmt.Println("")
115    fmt.Println(" Split 函数的用法")
116    fmt.Printf("%q\n", strings.Split("a,b,c", ","))
117    fmt.Printf("%q\n", strings.Split("a man a plan a canal panama", "a "))
118    fmt.Printf("%q\n", strings.Split(" xyz ", ""))
119    fmt.Printf("%q\n", strings.Split("", "Bernardo O'Higgins"))
120 
121    fmt.Println("")
122    fmt.Println(" SplitAfter 函数的用法")
123    fmt.Printf("%q\n", strings.SplitAfter("/home/m_ta/src", "/")) //["/" "home/" "m_ta/" "src"]
124 
125    fmt.Println("")
126    fmt.Println(" SplitAfterN 函数的用法")
127    fmt.Printf("%q\n", strings.SplitAfterN("/home/m_ta/src", "/", 2))  //["/" "home/m_ta/src"]
128    fmt.Printf("%q\n", strings.SplitAfterN("#home#m_ta#src", "#", -1)) //["/" "home/" "m_ta/" "src"]
129 
130    fmt.Println("")
131    fmt.Println(" SplitN 函数的用法")
132    fmt.Printf("%q\n", strings.SplitN("/home/m_ta/src", "/", 1))
133 
134    fmt.Printf("%q\n", strings.SplitN("/home/m_ta/src", "/", 2))  //["/" "home/" "m_ta/" "src"]
135    fmt.Printf("%q\n", strings.SplitN("/home/m_ta/src", "/", -1)) //["" "home" "m_ta" "src"]
136    fmt.Printf("%q\n", strings.SplitN("home,m_ta,src", ",", 2))   //["/" "home/" "m_ta/" "src"]
137 
138    fmt.Printf("%q\n", strings.SplitN("#home#m_ta#src", "#", -1)) //["/" "home/" "m_ta/" "src"]
139 
140    fmt.Println("")
141    fmt.Println(" Title 函数的用法") //这个函数,还真不知道有什么用
142    fmt.Println(strings.Title("her royal highness"))
143 
144    fmt.Println("")
145    fmt.Println(" ToLower 函数的用法")
146    fmt.Println(strings.ToLower("Gopher")) //gopher
147 
148    fmt.Println("")
149    fmt.Println(" ToLowerSpecial 函数的用法")
150 
151    fmt.Println("")
152    fmt.Println(" ToTitle 函数的用法")
153    fmt.Println(strings.ToTitle("loud noises"))
154    fmt.Println(strings.ToTitle("loud 中国"))
155 
156    fmt.Println("")
157    fmt.Println(" Replace 函数的用法")
158    fmt.Println(strings.Replace("ABAACEDF", "A", "a", 2)) // aBaACEDF
159    //第四个参数小于0,表示所有的都替换, 可以看下golang的文档
160    fmt.Println(strings.Replace("ABAACEDF", "A", "a", -1)) // aBaaCEDF
161 
162    fmt.Println("")
163    fmt.Println(" ToUpper 函数的用法")
164    fmt.Println(strings.ToUpper("Gopher")) //GOPHER
165 
166    fmt.Println("")
167    fmt.Println(" Trim  函数的用法")
168    fmt.Printf("[%q]", strings.Trim(" !!! Achtung !!! ", "! ")) // ["Achtung"]
169 
170    fmt.Println("")
171    fmt.Println(" TrimLeft 函数的用法")
172    fmt.Printf("[%q]", strings.TrimLeft(" !!! Achtung !!! ", "! ")) // ["Achtung !!! "]
173 
174    fmt.Println("")
175    fmt.Println(" TrimSpace 函数的用法")
176    fmt.Println(strings.TrimSpace(" \t\n a lone gopher \n\t\r\n")) // a lone gopher
177 
178}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值