GoLang基础数据类型

Stella981
• 阅读 689

GoLang基础数据类型--->字符串处理大全

作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

欢迎加入:   高级运维工程师之路               598432640

任何一门语言都有它的好处,Golang的长处就是在于它的高并发能力,所以现在练习好Golang的用法,有利于你找一份好的工作哟~在学习任何一本语言,它的基本数据类型我们应该都得熟记于心,今天我们处理的主角就是字符串。让我们一起看看Golang对字符串的用法吧。我们此处主要针对strings这个包的某些方法的用法做演示。

1.Contains

GoLang基础数据类型

 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

GoLang基础数据类型

2.ContainsAny

GoLang基础数据类型

 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

GoLang基础数据类型

3.ContainsRune

GoLang基础数据类型

 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

GoLang基础数据类型

4.Count

GoLang基础数据类型

 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

GoLang基础数据类型

5.EqualFold

GoLang基础数据类型

 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

GoLang基础数据类型

6.Fields

GoLang基础数据类型

 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 }

GoLang基础数据类型

7.HasPrefix

GoLang基础数据类型

 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

GoLang基础数据类型

8.HasSuffix

GoLang基础数据类型

 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 }

GoLang基础数据类型

9.Index

GoLang基础数据类型

 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

GoLang基础数据类型

10.IndexAny

GoLang基础数据类型

 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

GoLang基础数据类型

11.IndexRune

GoLang基础数据类型

 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

GoLang基础数据类型

12.Join

GoLang基础数据类型

 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

GoLang基础数据类型

13.LastIndex

GoLang基础数据类型

 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

GoLang基础数据类型

14.LastIndexAny

GoLang基础数据类型

 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

GoLang基础数据类型

15.Repeat

GoLang基础数据类型

 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 尹正杰  尹正杰  尹正杰  尹正杰  尹正杰  尹正杰

GoLang基础数据类型

16.Replace

GoLang基础数据类型

 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

GoLang基础数据类型

17.Split

GoLang基础数据类型

 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

GoLang基础数据类型

18.SplitAfter

GoLang基础数据类型

 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]

GoLang基础数据类型

19.SplitAfterN

GoLang基础数据类型

 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!# ]

GoLang基础数据类型

20.SplitN

GoLang基础数据类型

 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! ]

GoLang基础数据类型

21.Title

GoLang基础数据类型

 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

GoLang基础数据类型

22.ToLower

GoLang基础数据类型

 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

GoLang基础数据类型

23.ToLowerSpecial

GoLang基础数据类型

 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

GoLang基础数据类型

24.ToTitle

GoLang基础数据类型

 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

GoLang基础数据类型

25.ToUpper

GoLang基础数据类型

 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

GoLang基础数据类型

26.Trim

GoLang基础数据类型

 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

GoLang基础数据类型

27.TrimLeft与TrimRight

GoLang基础数据类型

 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

GoLang基础数据类型

28.TrimSpace

GoLang基础数据类型

 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 代码执行结束!

GoLang基础数据类型

29.TrimSuffix

GoLang基础数据类型

 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

GoLang基础数据类型

30.TrimPrefix

GoLang基础数据类型

 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

GoLang基础数据类型

31.TrimFunc

GoLang基础数据类型

 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

GoLang基础数据类型

32.TrimLeftFunc与TrimRightFunc

GoLang基础数据类型

 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

本文同步分享在 博客“一个字就是干”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
SQL语法基础之CREATE语句
SQL语法基础之CREATE语句作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。一.查看帮助信息1.使用“?”来查看MySQL命令的帮助信息mysql?CREATE  这里告诉我们CREATE命令需要和那些命令一起使用Manyhelpitems
Stella981 Stella981
3年前
Flume实战案例运维篇
Flume实战案例运维篇作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。一.Flume概述1.什么是Flume !(https://oscimg.oschina.net/oscnet/cfdbbae527024a725bbc602ba7b8e01d94f.png)
Wesley13 Wesley13
3年前
MongoDB入门
MongoDB入门Windows操作系统中Mongodb数据库的安装部署作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。一.数据库简介  博主推荐阅读:    https://www.cnblogs.com/yinzhengjie/p/11730035.html二.
Stella981 Stella981
3年前
Elastic Stack之Elasticsearch 5.6.12 集群部署实战
ElasticStack之Elasticsearch5.6.12集群部署实战作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。一.下载ElasticSearch1.查看ElasticSearch的发型版本(https://www.elastic.co/
Wesley13 Wesley13
3年前
HTML&CSS基础
HTML&CSS基础表单简介作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。一.HTML源代码<!DOCTYPEhtml<html<head<metacharset"UTF8"
Stella981 Stella981
3年前
Hadoop生态圈
Hadoop生态圈CentOs7.5单机部署ClickHouse作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。到了新的公司,认识了新的同事,生产环境也得你去适应新的集群环境,我新入职的公司的大数据开发同时并不看好hbase,而是对clickhouse青睐有加,听他们口头把ClickHouse吹的
Stella981 Stella981
3年前
Docker自建仓库之Harbor高可用部署实战篇
Docker自建仓库之Harbor高可用部署实战篇作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。一.部署单机的Harbor1.部署单机版的Harbor  博主推荐阅读:    https://www.cnblogs.com/yinzhengjie/p/1223
Stella981 Stella981
3年前
Scala进阶之路
Scala进阶之路统计商家id的标签数以及TopN示例案例分析作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。一.项目需求将“temptags.txt”中的数据进行分析,统计出商家id的评论标签数量,由于博客园无法上传大文件的文本,因此我把该文本的内容放在博客园的另一个链接了(需要的戳我