GoLang基础数据类型--->字符串处理大全
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
欢迎加入: 高级运维工程师之路 598432640
任何一门语言都有它的好处,Golang的长处就是在于它的高并发能力,所以现在练习好Golang的用法,有利于你找一份好的工作哟~在学习任何一本语言,它的基本数据类型我们应该都得熟记于心,今天我们处理的主角就是字符串。让我们一起看看Golang对字符串的用法吧。我们此处主要针对strings这个包的某些方法的用法做演示。
1.Contains

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 str := "尹正杰到此一游" 1717 fmt.Println(strings.Contains(str,"尹正杰")) 1818 fmt.Println(strings.Contains(str,"yinzhengjie")) 1919 fmt.Println(strings.Contains("", "")) 2020 } 2121 2222 2323 2424 2525 #以上代码执行结果如下: 2626 true 2727 false 2828 true

2.ContainsAny

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 package main 8 8 9 9 import ( 1010 "fmt" 1111 "strings" 1212 ) 1313 1414 func main() { 1515 str := "尹正杰到此一游" 1616 fmt.Println(strings.ContainsAny(str,"yin")) 1717 fmt.Println(strings.ContainsAny(str,"正杰")) 1818 fmt.Println(strings.ContainsAny(str,"正杰 & yinzhengjie")) 1919 fmt.Println(strings.ContainsAny("","")) 2020 } 2121 2222 2323 2424 #以上代码执行结果如下: 2525 false 2626 true 2727 true 2828 false

3.ContainsRune

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 str := "尹正杰到此一游" 1717 fmt.Println(strings.ContainsRune(str,'尹')) //要注意的是,后面的是一个字符哟,而不是一个字符串啦! 1818 fmt.Println(strings.ContainsRune(str,'Y')) 1919 } 2020 2121 2222 2323 #以上代码执行结果如下: 2424 true 2525 false

4.Count

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 str := "yinzhengjie" 1717 str2 := "尹正杰" 1818 fmt.Println(strings.Count(str,"i")) 1919 fmt.Println(strings.Count(str,"")) 2020 fmt.Println(strings.Count(str2,"")) 2121 } 2222 2323 2424 2525 #以上代码执行结果如下: 2626 2 2727 12 2828 4

5.EqualFold

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 str := "Yinzhengjie" 1717 fmt.Println(strings.EqualFold(str,"YINZHENGJIE")) //忽略大小写,但是如果除了大小写的差异之外,还有其他的差异就会判定为false. 1818 fmt.Println(strings.EqualFold(str,"Yin")) 1919 fmt.Println(strings.EqualFold(str,"yinzhengjie")) 2020 fmt.Println(strings.EqualFold(str,"yINZHENGJIE")) 2121 fmt.Println(strings.EqualFold(str,"yIN")) 2222 } 2323 2424 2525 2626 2727 #以上代码执行结果如下: 2828 true 2929 false 3030 true 3131 true 3232 false

6.Fields

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 "reflect" 1414 ) 1515 1616 func main() { 1717 str := "yinzhengjie is good boy!" 1818 fmt.Println(str) 1919 fmt.Println("str的类型是:",reflect.TypeOf(str)) 2020 list := strings.Fields(str) 2121 fmt.Println(list) 2222 fmt.Println("用Fields方法处理过的str类型是:",reflect.TypeOf(list)) 2323 }

7.HasPrefix

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 str := "尹正杰到此一游" 1717 fmt.Println(strings.HasPrefix(str,"尹正杰")) //判断字符串是否以“尹正杰”开头。 1818 fmt.Println(strings.HasPrefix(str,"正杰")) 1919 } 2020 2121 2222 2323 #以上代码执行结果如下: 2424 true 2525 false

8.HasSuffix

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 str := "尹正杰到此一游" 1717 fmt.Println(strings.HasSuffix(str,"到此一游")) //判断字符串是否以“到此一游”结尾. 1818 fmt.Println(strings.HasSuffix(str,"到此")) 1919 }

9.Index

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 name := "yinzhengjie" 1717 str := "尹正杰到此一游" 1818 fmt.Println(strings.Index(str,"杰")) //注意,一个汉字战友三个字节,在“杰”前面有2个汉字,占据了0-5的索引,因此“杰”所对应的下班索引应该是“6” 1919 fmt.Println(strings.Index(name,"i")) //找到第一个匹配到的“i”的索引下标。 2020 fmt.Println(strings.Index(name,"haha")) //如果没有找到的话就会返回“-1” 2121 } 2222 2323 2424 2525 2626 #以上代码执行结果如下: 2727 6 2828 1 2929 -1

10.IndexAny

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 str := "尹正杰到此一游" 1717 fmt.Println(strings.IndexAny(str,"正")) 1818 fmt.Println(strings.IndexAny(str,"到此")) 1919 fmt.Println(strings.IndexAny(str,"哈哈")) 2020 } 2121 2222 2323 2424 #以上代码执行结果如下: 2525 3 2626 9 2727 -1

11.IndexRune

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 str := "尹正杰到此一游" 1717 fmt.Println(strings.IndexRune(str,'杰')) //注意这里面输入的是字节哟! 1818 fmt.Println(strings.IndexRune(str,'y')) //当然如果字符串不存在的话仍然会返回“-1” 1919 } 2020 2121 2222 2323 #以上代码执行结果如下: 2424 6 2525 -1

12.Join

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 "reflect" 1414 ) 1515 1616 func main() { 1717 str := []string{ 18 19 20 21 "yinzhengjie","is","a","good","boy!"} 2218 fmt.Println("没有进行切片之前str的类型为:",reflect.TypeOf(str)) 2319 join_string := strings.Join(str,"···") //该方法可以将多个字符串切片数组进行拼接,使其成为一个字符串。可以指定每个字符串的间隔。 2420 fmt.Println(join_string) 2521 fmt.Println("用JOIN方法之后str的类型为:",reflect.TypeOf(join_string)) 2622 } 2723 2824 2925 #以上代码执行结果如下: 3026 没有进行切片之前str的类型为: []string 3127 yinzhengjie···is···a···good···boy! 3228 用JOIN方法之后str的类型为: string

13.LastIndex

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 name := "yinzhengjie" 1717 fmt.Println(strings.LastIndex(name,"i")) //匹配最后一个字母“i”的索引下标 1818 fmt.Println(strings.LastIndex(name,"e")) 1919 fmt.Println(strings.LastIndex(name,"尹")) //如果没有匹配到依然返回“-1”哟 2020 } 2121 2222 2323 2424 #以上代码执行结果如下: 2525 9 2626 10 2727 -1

14.LastIndexAny

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 str := "尹正杰到此一游" 1717 fmt.Println(strings.LastIndexAny(str,"一游")) //我们输入的是“一游”,但是它会默认匹配“游”这个字的索引下标, 1818 // 由于其前面有6个汉字,一个汉字对应着3个字节,所以他返回的值应该是18. 1919 } 2020 2121 2222 2323 #以上代码执行结果如下: 2424 18

15.Repeat

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 fmt.Println(strings.Repeat("尹正杰 ",6)) //Repeat方法可以重复一个字符串的次数。 1717 } 1818 1919 2020 2121 #以上代码执行结果如下: 2222 尹正杰 尹正杰 尹正杰 尹正杰 尹正杰 尹正杰

16.Replace

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 name := "yinzhengjie" 1717 fmt.Println(strings.Replace(name,"y","Y",1)) //表示将name字符串中的“y”重定向成“Y”,后面的数字 1818 // 表示匹配的次数,匹配一次表示只修改第一个匹配到的字符串,如果匹配到2次都做相同的操作。 1919 fmt.Println(strings.Replace(name,"e","E",2)) 2020 fmt.Println(strings.Replace(name,"i","I",1)) 2121 fmt.Println(strings.Replace(name,"i","I",-1)) //注意,这个“-1”就表示从第一个开始匹配, 2222 // 到最后一个结束,都做相同的操作,也就是将“i”修改为“I” 2323 } 2424 2525 2626 2727 #以上代码执行结果如下: 2828 Yinzhengjie 2929 yinzhEngjiE 3030 yInzhengjie 3131 yInzhengjIe

17.Split

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 "reflect" 1414 ) 1515 1616 func main() { 1717 name := "yinzhengjie" 1818 fmt.Println(reflect.TypeOf(name)) 1919 list := strings.Split(name,"i") //表示以字符串中的字母“i”为分隔符,将这个字符串进行分离,进而生成了一个数组切片。 2020 fmt.Println(list) 2121 fmt.Println(reflect.TypeOf(list)) 2222 } 2323 2424 2525 2626 2727 #以上代码执行结果如下: 2828 string 2929 [y nzhengj e] 3030 []string

18.SplitAfter

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 name := "yinzhengjie" 1717 fmt.Println(strings.SplitAfter(name,"i")) //SplitAfter这个方法表示在字符串中的字母“i”之后进行切割, 1818 // 但是并不会覆盖到字母“i”,这一点跟Split方法是有所不同的哟! 1919 } 2020 2121 2222 2323 2424 #以上代码执行结果如下: 2525 [yi nzhengji e]

19.SplitAfterN

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 name := "#yinzhengjie#is#a#good#boy!#" 1717 fmt.Println(strings.SplitAfterN(name,"#",3)) //表示将字符串name用“#”分割,分成的长度为3 1818 fmt.Println(strings.SplitAfterN(name,"#",5)) 1919 fmt.Println(strings.SplitAfterN(name,"#",-1)) //注意,这个“-1”表示将这个字符串进行分割,以“#”为分隔符 2020 } 2121 2222 2323 2424 #以上代码执行结果如下: 2525 [# yinzhengjie# is#a#good#boy!#] 2626 [# yinzhengjie# is# a# good#boy!#] 2727 [# yinzhengjie# is# a# good# boy!# ]

20.SplitN

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 name := "#yinzhengjie#is#a#good#boy!#" 1717 fmt.Println(name) 1818 fmt.Println(strings.SplitN(name,"#",2)) //我们知道“name”这个字符串里面包含了6个“#”的特殊字符, 1919 // 这个数字2表示将字符串用“#”将其分成2段,其中“#”被分割处理了。 2020 fmt.Println(strings.SplitN(name,"#",5)) 2121 fmt.Println(strings.SplitN(name,"#",-1)) //表示用“#”对字符串进行分割,这个就是有多少个“#”号就会被分割多少次。 2222 } 2323 2424 2525 2626 2727 #以上代码执行结果如下: 2828 #yinzhengjie#is#a#good#boy!# 2929 [ yinzhengjie#is#a#good#boy!#] 3030 [ yinzhengjie is a good#boy!#] 3131 [ yinzhengjie is a good boy! ]

21.Title

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 name := "yinzhengjie" 1717 fmt.Println(strings.Title(name)) //该方法可以让首字母大写哟! 1818 } 1919 2020 2121 #以上代码执行结果如下: 2222 Yinzhengjie

22.ToLower

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 name := "YINZHENGjie" 1717 fmt.Println(strings.ToLower(name)) //将大写字母转换成小写字母,如果已经是小写就不在错操作了。 1818 } 1919 2020 2121 2222 #以上代码执行结果如下: 2323 yinzhengjie

23.ToLowerSpecial

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 //"strings" 1313 "bytes" 1414 "unicode" 1515 "strings" 1616 ) 1717 1818 func main() { 1919 name := []byte("YINZHENGJIE") 2020 str := "YZJ" 2121 fmt.Println(string(bytes.ToLowerSpecial(unicode.AzeriCase,name))) //该方法可以将字节中的字母变为小写。 2222 fmt.Println(strings.ToLowerSpecial(unicode.AzeriCase,str)) //该方法可以将字符串的字母变为小写。 2323 } 2424 2525 2626 2727 #以上代码执行结果如下: 2828 yınzhengjıe 2929 yzj

24.ToTitle

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 name := "Yinzhengjie" 1717 fmt.Println(strings.ToTitle(name)) //该方法可以将小写字母变大写。 1818 } 1919 2020 2121 #以上代码执行结果如下: 2222 YINZHENGJIE

25.ToUpper

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 name := "yinzhengjie" 1717 fmt.Println(strings.ToUpper(name)) //该方法也是将小写字母变成大写,从效果上来看跟ToTitle很相似。 1818 } 1919 2020 2121 #以上代码执行结果如下: 2222 YINZHENGJIE

26.Trim

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 str := "#尹#正#杰#is#a#good#boy#" 1717 fmt.Println(strings.Trim(str,"#")) //该方法可以去掉字符串左右两边的符号,但是字符串之间的是去不掉“#”的哟。 1818 } 1919 2020 #以上代码执行结果如下: 2121 尹#正#杰#is#a#good#boy

27.TrimLeft与TrimRight

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 str := "#尹#正#杰#is#a#good#boy#" 1717 fmt.Println(strings.TrimLeft(str,"#")) //表示只去掉左边的“#”号 1818 fmt.Println(strings.TrimRight(str,"#")) //表示只去掉右边的“#”号 1919 } 2020 2121 2222 2323 #以上代码执行结果如下: 2424 尹#正#杰#is#a#good#boy# 2525 #尹#正#杰#is#a#good#boy

28.TrimSpace

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 str := " # 尹#正#杰#is#a#good#boy# \n " 1717 fmt.Println("TrimSpace处理之前的样子:",str) 1818 fmt.Println("TrimSpace处理之后的样子:",strings.TrimSpace(str)) //该方法可以脱去两边的空格和换行符。 1919 fmt.Println("代码执行结束!") 2020 } 2121 2222 2323 #以上代码执行结果如下: 2424 TrimSpace处理之前的样子: # 尹#正#杰#is#a#good#boy# 2525 2626 TrimSpace处理之后的样子: # 尹#正#杰#is#a#good#boy# 2727 代码执行结束!

29.TrimSuffix

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 str := "尹正杰 love Golang" 1717 fmt.Println(strings.TrimSuffix(str,"Golang")) //该方法可以从后面脱去以“Golang结尾的字符串” 1818 fmt.Println(strings.TrimSuffix(str,"尹正杰")) //但是没办法从前面脱去特定的字符串“尹正杰” 1919 } 2020 2121 2222 2323 #以上代码执行结果如下: 2424 尹正杰 love 2525 尹正杰 love Golang

30.TrimPrefix

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "strings" 1313 ) 1414 1515 func main() { 1616 str := "尹正杰 love Golang" 1717 fmt.Println(strings.TrimPrefix(str,"尹")) 1818 fmt.Println(strings.TrimPrefix(str,"Golang")) 1919 } 2020 2121 2222 #以上代码执行结果如下: 2323 正杰 love Golang 2424 尹正杰 love Golang

31.TrimFunc

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "bytes" 1313 "strings" 1414 ) 1515 1616 func main() { 1717 s := []byte("yinzhengjie") 1818 fmt.Println(string(bytes.TrimFunc(s,func(r rune)bool{ //可以去字节中的首字母或尾字母。 1919 if r=='y' || r=='e'{ 2020 return true 2121 }else{ 2222 return false 2323 } 2424 }))) 2525 2626 name := "yinzhengjie" 2727 res := strings.TrimFunc(name, func(r rune) bool { //可以去掉字符串的首字母或尾字母,注意,中间的字母并不能操作哟! 2828 if r == 'y'|| r== 'e' { 2929 return true 3030 }else { 3131 return false 3232 } 3333 }) 3434 fmt.Println(res) 3535 } 3636 3737 3838 3939 #以上代码执行结果如下: 4040 inzhengji 4141 inzhengji

32.TrimLeftFunc与TrimRightFunc

1 1 /* 2 2 #!/usr/bin/env gorun 3 3 @author :yinzhengjie 4 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 5 EMAIL:y1053419035@qq.com 6 6 */ 7 7 8 8 package main 9 9 1010 import ( 1111 "fmt" 1212 "bytes" 1313 "strings" 1414 ) 1515 1616 func main() { 1717 name := []byte("#yinzhengjie#") 1818 fmt.Println(string(bytes.TrimLeftFunc(name,func(r rune)bool{ //只匹配字节的最左边 1919 if r == '#' || r=='y'{ //注意这个地方是字节哟! 2020 return true 2121 }else{ 2222 return false 2323 } 2424 2525 }))) 2626 2727 str := "#yinzhengjie#" 2828 fmt.Println(strings.TrimLeftFunc(str, func(r rune) bool { //只匹配字符串的最左边,也要注意下面的条件判断是字节而不是字符串哟。 2929 if r == '#' || r == 'y' { //注意是单引号而不是双引号! 3030 return true 3131 }else { 3232 return false 3333 } 3434 })) 3535 3636 //当然用TrimLeft方法也可以一行就搞定 3737 fmt.Println(string(bytes.TrimLeft(name,"#"))) 3838 3939 fmt.Println("--------我是分割线---------") 4040 4141 4242 //TrimRightFunc 4343 fmt.Println(string(bytes.TrimRightFunc(name,func(r rune)bool{ 4444 if r == '#'{ 4545 return true 4646 }else{ 4747 return false 4848 } 4949 5050 }))) 5151 5252 fmt.Println(strings.TrimRightFunc(str, func(r rune) bool { 5353 if r == '#' { 5454 return true 5555 }else { 5656 return false 5757 } 5858 })) 5959 6060 //当然用TrimRight方法也可以一行就搞定 6161 fmt.Println(string(bytes.TrimRight(name,"#"))) 6262 } 6363 6464 6565 6666 6767 #以上代码执行结果如下: 6868 inzhengjie# 6969 inzhengjie# 7070 yinzhengjie# 7171 --------我是分割线--------- 7272 #yinzhengjie 7373 #yinzhengjie 7474 #yinzhengjie
本文同步分享在 博客“一个字就是干”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。