GoLang基础数据类型--->字符串处理大全
2017-12-25 19:04
721 查看
GoLang基础数据类型--->字符串处理大全
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
欢迎加入: 高级运维工程师之路 598432640
任何一门语言都有它的好处,Golang的长处就是在于它的高并发能力,所以现在练习好Golang的用法,有利于你找一份好的工作哟~在学习任何一本语言,它的基本数据类型我们应该都得熟记于心,今天我们处理的主角就是字符串。让我们一起看看Golang对字符串的用法吧。我们此处主要针对strings这个包的某些方法的用法做演示。
1.Contains
2.ContainsAny
3.ContainsRune
4.Count
5.EqualFold
6.Fields
7.HasPrefix
8.HasSuffix
9.Index
10.IndexAny
11.IndexRune
12.Join
13.LastIndex
14.LastIndexAny
15.Repeat
16.Replace
17.Split
18.SplitAfter
19.SplitAfterN
20.SplitN
21.Title
22.ToLower
23.ToLowerSpecial
24.ToTitle
25.ToUpper
26.Trim
27.TrimLeft与TrimRight
28.TrimSpace
29.TrimSuffix
30.TrimPrefix
31.TrimFunc
32.TrimLeftFunc与TrimRightFunc
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
欢迎加入: 高级运维工程师之路 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
相关文章推荐
- GoLang基础数据类型--->字符串处理大全
- GoLang基础数据类型--->数组(array)详解
- golang基础-变常量、值互换、数据类型、键盘输入、格式化、字符串
- GoLang基础数据类型--->字典(map)详解
- Python基础4:数据类型:数字 字符串 日期
- C# 基础知识 (五).变量类型和字符串处理
- Python入门(二)——IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式化
- [iOS]Objective-C中字符串数据类型与基础数据类型的相互转换
- 字符串处理,数据类型
- 黑马程序员——java基础知识篇——>标识符、关键字、常量、进制表示、数据类型、运算符等
- java基础---->数据类型、运算符、程序控制
- Python基础——原生数据类型(字典,列表,元组,字符串)
- Javascript基础教程之数据类型 (字符串 String)
- 小白成长记——Java基础之基本数据类型与字符串的相互转换
- Javascript基础系列之(三)数据类型 (字符串 String)
- Java基础语法(一)<注释,关键字,常量,变量,数据类型,标识符,数据类型转换>
- 将泛型集合类(List<T>)转换成DataTable,返回的DataTable所有列的数据类型为string型,且列顺序与字符串提供的字段顺序一致
- 《黑马程序员》java笔记->基本数据类型包装类及自动拆箱装箱原理,数组排序练习字符串切割
- java 从零开始,学习笔记之基础入门<数据类型的转换>(五)
- 黑马程序员--SQL Server基础<一>新建数据库、主键、数据类型