golang strings包

zb_liang · · 2908 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

001 package main
002  
003 import (
004     "fmt"
005     "strings"
006     //"unicode/utf8"
007 )
008  
009 func 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 }

有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:zb_liang

查看原文:golang strings包

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2908 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传