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的索引,因此“傑”所對應的下班索引應該是“6” 19 fmt.Println(strings.Index(name,"i")) //找到第一個匹配到的“i”的索引下標。 20 fmt.Println(strings.Index(name,"haha")) //如果沒有找到的話就會返回“-1” 21 } 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')) //當然如果字符串不存在的話仍然會返回“-1” 19 } 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
想要學習更多關於字符串處理的方法,使勁戳我!