GoLang基礎數據類型--->字符串處理大全


                    GoLang基礎數據類型--->字符串處理大全

                                              作者:尹正傑

版權聲明:原創作品,謝絕轉載!否則將追究法律責任。

歡迎加入:   高級運維工程師之路               598432640

 

 

  任何一門語言都有它的好處,Golang的長處就是在於它的高並發能力,所以現在練習好Golang的用法,有利於你找一份好的工作喲~在學習任何一本語言,它的基本數據類型我們應該都得熟記於心,今天我們處理的主角就是字符串。讓我們一起看看Golang對字符串的用法吧。我們此處主要針對strings這個包的某些方法的用法做演示。

 

 

1.Contains

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11 "fmt"
12 "strings"
13 )
14 
15 func main() {
16     str := "尹正傑到此一游"
17     fmt.Println(strings.Contains(str,"尹正傑"))
18     fmt.Println(strings.Contains(str,"yinzhengjie"))
19     fmt.Println(strings.Contains("", ""))
20 }
21 
22 
23 
24 
25 #以上代碼執行結果如下:
26 true
27 false
28 true

 

2.ContainsAny

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 package main
 8 
 9 import (
10     "fmt"
11     "strings"
12 )
13 
14 func main() {
15     str := "尹正傑到此一游"
16     fmt.Println(strings.ContainsAny(str,"yin"))
17     fmt.Println(strings.ContainsAny(str,"正傑"))
18     fmt.Println(strings.ContainsAny(str,"正傑 & yinzhengjie"))
19     fmt.Println(strings.ContainsAny("",""))
20 }
21 
22 
23 
24 #以上代碼執行結果如下:
25 false
26 true
27 true
28 false

 

3.ContainsRune 

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     str := "尹正傑到此一游"
17     fmt.Println(strings.ContainsRune(str,'')) //要注意的是,后面的是一個字符喲,而不是一個字符串啦!
18     fmt.Println(strings.ContainsRune(str,'Y'))
19 }
20 
21 
22 
23 #以上代碼執行結果如下:
24 true
25 false

 

4.Count

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     str := "yinzhengjie"
17     str2 := "尹正傑"
18     fmt.Println(strings.Count(str,"i"))
19     fmt.Println(strings.Count(str,""))
20     fmt.Println(strings.Count(str2,""))
21 }
22 
23 
24 
25 #以上代碼執行結果如下:
26 2
27 12
28 4

 

5.EqualFold

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     str := "Yinzhengjie"
17     fmt.Println(strings.EqualFold(str,"YINZHENGJIE")) //忽略大小寫,但是如果除了大小寫的差異之外,還有其他的差異就會判定為false.
18     fmt.Println(strings.EqualFold(str,"Yin"))
19     fmt.Println(strings.EqualFold(str,"yinzhengjie"))
20     fmt.Println(strings.EqualFold(str,"yINZHENGJIE"))
21     fmt.Println(strings.EqualFold(str,"yIN"))
22 }
23 
24 
25 
26 
27 #以上代碼執行結果如下:
28 true
29 false
30 true
31 true
32 false

 

6.Fields

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13     "reflect"
14 )
15 
16 func main() {
17     str := "yinzhengjie is good boy!"
18     fmt.Println(str)
19     fmt.Println("str的類型是:",reflect.TypeOf(str))
20     list := strings.Fields(str)
21     fmt.Println(list)
22     fmt.Println("用Fields方法處理過的str類型是:",reflect.TypeOf(list))
23 }

 

7.HasPrefix

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     str := "尹正傑到此一游"
17     fmt.Println(strings.HasPrefix(str,"尹正傑")) //判斷字符串是否以“尹正傑”開頭。
18     fmt.Println(strings.HasPrefix(str,"正傑"))
19 }
20 
21 
22 
23 #以上代碼執行結果如下:
24 true
25 false

 

8.HasSuffix

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     str := "尹正傑到此一游"
17     fmt.Println(strings.HasSuffix(str,"到此一游")) //判斷字符串是否以“到此一游”結尾.
18     fmt.Println(strings.HasSuffix(str,"到此"))
19 }

 

9.Index

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     name := "yinzhengjie"
17     str := "尹正傑到此一游"
18     fmt.Println(strings.Index(str,"")) //注意,一個漢字戰友三個字節,在“傑”前面有2個漢字,占據了0-5的索引,因此“傑”所對應的下班索引應該是“619     fmt.Println(strings.Index(name,"i"))  //找到第一個匹配到的“i”的索引下標。
20     fmt.Println(strings.Index(name,"haha")) //如果沒有找到的話就會返回“-121 }
22 
23 
24 
25 
26 #以上代碼執行結果如下:
27 6
28 1
29 -1

 

10.IndexAny

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     str := "尹正傑到此一游"
17     fmt.Println(strings.IndexAny(str,""))
18     fmt.Println(strings.IndexAny(str,"到此"))
19     fmt.Println(strings.IndexAny(str,"哈哈"))
20 }
21 
22 
23 
24 #以上代碼執行結果如下:
25 3
26 9
27 -1

 

11.IndexRune

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     str := "尹正傑到此一游"
17     fmt.Println(strings.IndexRune(str,''))  //注意這里面輸入的是字節喲!
18     fmt.Println(strings.IndexRune(str,'y'))  //當然如果字符串不存在的話仍然會返回“-119 }
20 
21 
22 
23 #以上代碼執行結果如下:
24 6
25 -1

 

12.Join

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13     "reflect"
14 )
15 
16 func main() {
17     str := []string{"yinzhengjie","is","a","good","boy!"}
18     fmt.Println("沒有進行切片之前str的類型為:",reflect.TypeOf(str))
19     join_string := strings.Join(str,"···") //該方法可以將多個字符串切片數組進行拼接,使其成為一個字符串。可以指定每個字符串的間隔。
20     fmt.Println(join_string)
21     fmt.Println("用JOIN方法之后str的類型為:",reflect.TypeOf(join_string))
22 }
23 
24 
25 #以上代碼執行結果如下:
26 沒有進行切片之前str的類型為: []string
27 yinzhengjie···is···a···good···boy!
28 用JOIN方法之后str的類型為: string

 

13.LastIndex

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     name := "yinzhengjie"
17     fmt.Println(strings.LastIndex(name,"i")) //匹配最后一個字母“i”的索引下標
18     fmt.Println(strings.LastIndex(name,"e"))
19     fmt.Println(strings.LastIndex(name,"")) //如果沒有匹配到依然返回“-1”喲
20 }
21 
22 
23 
24 #以上代碼執行結果如下:
25 9
26 10
27 -1

 

14.LastIndexAny

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     str := "尹正傑到此一游"
17     fmt.Println(strings.LastIndexAny(str,"一游")) //我們輸入的是“一游”,但是它會默認匹配“游”這個字的索引下標,
18     // 由於其前面有6個漢字,一個漢字對應着3個字節,所以他返回的值應該是18.
19 }
20 
21 
22 
23 #以上代碼執行結果如下:
24 18

 

15.Repeat

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     fmt.Println(strings.Repeat("尹正傑  ",6))  //Repeat方法可以重復一個字符串的次數。
17 }
18 
19 
20 
21 #以上代碼執行結果如下:
22 尹正傑  尹正傑  尹正傑  尹正傑  尹正傑  尹正傑  

 

16.Replace

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     name := "yinzhengjie"
17     fmt.Println(strings.Replace(name,"y","Y",1))  //表示將name字符串中的“y”重定向成“Y”,后面的數字
18     // 表示匹配的次數,匹配一次表示只修改第一個匹配到的字符串,如果匹配到2次都做相同的操作。
19     fmt.Println(strings.Replace(name,"e","E",2))
20     fmt.Println(strings.Replace(name,"i","I",1))
21     fmt.Println(strings.Replace(name,"i","I",-1)) //注意,這個“-1”就表示從第一個開始匹配,
22     // 到最后一個結束,都做相同的操作,也就是將“i”修改為“I”
23 }
24 
25 
26 
27 #以上代碼執行結果如下:
28 Yinzhengjie
29 yinzhEngjiE
30 yInzhengjie
31 yInzhengjIe

 

17.Split

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13     "reflect"
14 )
15 
16 func main() {
17     name := "yinzhengjie"
18     fmt.Println(reflect.TypeOf(name))
19     list := strings.Split(name,"i")  //表示以字符串中的字母“i”為分隔符,將這個字符串進行分離,進而生成了一個數組切片。
20     fmt.Println(list)
21     fmt.Println(reflect.TypeOf(list))
22 }
23 
24 
25 
26 
27 #以上代碼執行結果如下:
28 string
29 [y nzhengj e]
30 []string

 

18.SplitAfter

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     name := "yinzhengjie"
17     fmt.Println(strings.SplitAfter(name,"i"))  //SplitAfter這個方法表示在字符串中的字母“i”之后進行切割,
18     // 但是並不會覆蓋到字母“i”,這一點跟Split方法是有所不同的喲!
19 }
20 
21 
22 
23 
24 #以上代碼執行結果如下:
25 [yi nzhengji e]

 

19.SplitAfterN

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     name := "#yinzhengjie#is#a#good#boy!#"
17     fmt.Println(strings.SplitAfterN(name,"#",3))  //表示將字符串name用“#”分割,分成的長度為3
18     fmt.Println(strings.SplitAfterN(name,"#",5))
19     fmt.Println(strings.SplitAfterN(name,"#",-1)) //注意,這個“-1”表示將這個字符串進行分割,以“#”為分隔符
20 }
21 
22 
23 
24 #以上代碼執行結果如下:
25 [# yinzhengjie# is#a#good#boy!#]
26 [# yinzhengjie# is# a# good#boy!#]
27 [# yinzhengjie# is# a# good# boy!# ]

 

20.SplitN

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     name := "#yinzhengjie#is#a#good#boy!#"
17     fmt.Println(name)
18     fmt.Println(strings.SplitN(name,"#",2)) //我們知道“name”這個字符串里面包含了6個“#”的特殊字符,
19     // 這個數字2表示將字符串用“#”將其分成2段,其中“#”被分割處理了。
20     fmt.Println(strings.SplitN(name,"#",5))
21     fmt.Println(strings.SplitN(name,"#",-1)) //表示用“#”對字符串進行分割,這個就是有多少個“#”號就會被分割多少次。
22 }
23 
24 
25 
26 
27 #以上代碼執行結果如下:
28 #yinzhengjie#is#a#good#boy!#
29 [ yinzhengjie#is#a#good#boy!#]
30 [ yinzhengjie is a good#boy!#]
31 [ yinzhengjie is a good boy! ]

 

21.Title

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     name := "yinzhengjie"
17     fmt.Println(strings.Title(name))  //該方法可以讓首字母大寫喲!
18 }
19 
20 
21 #以上代碼執行結果如下:
22 Yinzhengjie

 

22.ToLower

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     name := "YINZHENGjie"
17     fmt.Println(strings.ToLower(name)) //將大寫字母轉換成小寫字母,如果已經是小寫就不在錯操作了。
18 }
19 
20 
21 
22 #以上代碼執行結果如下:
23 yinzhengjie

 

23.ToLowerSpecial

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     //"strings"
13     "bytes"
14     "unicode"
15     "strings"
16 )
17 
18 func main() {
19     name := []byte("YINZHENGJIE")
20     str := "YZJ"
21     fmt.Println(string(bytes.ToLowerSpecial(unicode.AzeriCase,name)))  //該方法可以將字節中的字母變為小寫。
22     fmt.Println(strings.ToLowerSpecial(unicode.AzeriCase,str)) //該方法可以將字符串的字母變為小寫。
23 }
24 
25 
26 
27 #以上代碼執行結果如下:
28 yınzhengjıe
29 yzj

 

24.ToTitle

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     name := "Yinzhengjie"
17     fmt.Println(strings.ToTitle(name))  //該方法可以將小寫字母變大寫。
18 }
19 
20 
21 #以上代碼執行結果如下:
22 YINZHENGJIE

 

25.ToUpper

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     name := "yinzhengjie"
17     fmt.Println(strings.ToUpper(name)) //該方法也是將小寫字母變成大寫,從效果上來看跟ToTitle很相似。
18 }
19 
20 
21 #以上代碼執行結果如下:
22 YINZHENGJIE

 

26.Trim

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     str := "#尹#正#傑#is#a#good#boy#"
17     fmt.Println(strings.Trim(str,"#"))  //該方法可以去掉字符串左右兩邊的符號,但是字符串之間的是去不掉“#”的喲。
18 }
19 
20 #以上代碼執行結果如下:
21#正#傑#is#a#good#boy

 

27.TrimLeft與TrimRight

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     str := "#尹#正#傑#is#a#good#boy#"
17     fmt.Println(strings.TrimLeft(str,"#"))  //表示只去掉左邊的“#”號
18     fmt.Println(strings.TrimRight(str,"#"))  //表示只去掉右邊的“#”號
19 }
20 
21 
22 
23 #以上代碼執行結果如下:
24#正#傑#is#a#good#boy#
25 #尹#正#傑#is#a#good#boy

 

28.TrimSpace

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     str := "          #   尹#正#傑#is#a#good#boy#      \n              "
17     fmt.Println("TrimSpace處理之前的樣子:",str)
18     fmt.Println("TrimSpace處理之后的樣子:",strings.TrimSpace(str))  //該方法可以脫去兩邊的空格和換行符。
19     fmt.Println("代碼執行結束!")
20 }
21 
22 
23 #以上代碼執行結果如下:
24 TrimSpace處理之前的樣子:           #   尹#正#傑#is#a#good#boy#      
25               
26 TrimSpace處理之后的樣子: #   尹#正#傑#is#a#good#boy#
27 代碼執行結束!

 

29.TrimSuffix

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     str := "尹正傑 love Golang"
17     fmt.Println(strings.TrimSuffix(str,"Golang")) //該方法可以從后面脫去以“Golang結尾的字符串”
18     fmt.Println(strings.TrimSuffix(str,"尹正傑")) //但是沒辦法從前面脫去特定的字符串“尹正傑”
19 }
20 
21 
22 
23 #以上代碼執行結果如下:
24 尹正傑 love 
25 尹正傑 love Golang

 

30.TrimPrefix

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "strings"
13 )
14 
15 func main() {
16     str := "尹正傑 love Golang"
17     fmt.Println(strings.TrimPrefix(str,""))
18     fmt.Println(strings.TrimPrefix(str,"Golang"))
19 }
20 
21 
22 #以上代碼執行結果如下:
23 正傑 love Golang
24 尹正傑 love Golang

 

31.TrimFunc

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "bytes"
13     "strings"
14 )
15 
16 func main() {
17     s := []byte("yinzhengjie")
18     fmt.Println(string(bytes.TrimFunc(s,func(r rune)bool{ //可以去字節中的首字母或尾字母。
19         if r=='y' || r=='e'{
20             return true
21         }else{
22             return false
23         }
24     })))
25 
26     name := "yinzhengjie"
27     res :=     strings.TrimFunc(name, func(r rune) bool { //可以去掉字符串的首字母或尾字母,注意,中間的字母並不能操作喲!
28         if r == 'y'|| r== 'e' {
29             return true
30         }else {
31             return false
32         }
33     })
34     fmt.Println(res)
35 }
36 
37 
38 
39 #以上代碼執行結果如下:
40 inzhengji
41 inzhengji

 

32.TrimLeftFunc與TrimRightFunc

 1 /*
 2 #!/usr/bin/env gorun
 3 @author :yinzhengjie
 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
 5 EMAIL:y1053419035@qq.com
 6 */
 7 
 8 package main
 9 
10 import (
11     "fmt"
12     "bytes"
13     "strings"
14 )
15 
16 func main() {
17     name := []byte("#yinzhengjie#")
18     fmt.Println(string(bytes.TrimLeftFunc(name,func(r rune)bool{ //只匹配字節的最左邊
19         if r == '#' || r=='y'{     //注意這個地方是字節喲!
20             return true
21         }else{
22             return false
23         }
24 
25     })))
26 
27     str := "#yinzhengjie#"
28     fmt.Println(strings.TrimLeftFunc(str, func(r rune) bool {  //只匹配字符串的最左邊,也要注意下面的條件判斷是字節而不是字符串喲。
29         if r == '#' || r == 'y' {  //注意是單引號而不是雙引號!
30             return true
31         }else {
32             return false
33         }
34     }))
35 
36     //當然用TrimLeft方法也可以一行就搞定
37     fmt.Println(string(bytes.TrimLeft(name,"#")))
38 
39     fmt.Println("--------我是分割線---------")
40 
41 
42     //TrimRightFunc
43     fmt.Println(string(bytes.TrimRightFunc(name,func(r rune)bool{
44         if r == '#'{
45             return true
46         }else{
47             return false
48         }
49 
50     })))
51 
52     fmt.Println(strings.TrimRightFunc(str, func(r rune) bool {
53         if r == '#' {
54             return true
55         }else {
56             return false
57         }
58     }))
59 
60     //當然用TrimRight方法也可以一行就搞定
61     fmt.Println(string(bytes.TrimRight(name,"#")))
62 }
63 
64 
65 
66 
67 #以上代碼執行結果如下:
68 inzhengjie#
69 inzhengjie#
70 yinzhengjie#
71 --------我是分割線---------
72 #yinzhengjie
73 #yinzhengjie
74 #yinzhengjie

   想要學習更多關於字符串處理的方法,使勁戳我


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM