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

                                              作者:尹正杰

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

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

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

1.Contains

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
) func main() {
str := "尹正杰到此一游"
fmt.Println(strings.Contains(str,"尹正杰"))
fmt.Println(strings.Contains(str,"yinzhengjie"))
fmt.Println(strings.Contains("", ""))
} #以上代码执行结果如下:
true
false
true

2.ContainsAny

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/
package main import (
"fmt"
"strings"
) func main() {
str := "尹正杰到此一游"
fmt.Println(strings.ContainsAny(str,"yin"))
fmt.Println(strings.ContainsAny(str,"正杰"))
fmt.Println(strings.ContainsAny(str,"正杰 & yinzhengjie"))
fmt.Println(strings.ContainsAny("",""))
} #以上代码执行结果如下:
false
true
true
false

3.ContainsRune 

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
) func main() {
str := "尹正杰到此一游"
fmt.Println(strings.ContainsRune(str,'尹')) //要注意的是,后面的是一个字符哟,而不是一个字符串啦!
fmt.Println(strings.ContainsRune(str,'Y'))
} #以上代码执行结果如下:
true
false

4.Count

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
) func main() {
str := "yinzhengjie"
str2 := "尹正杰"
fmt.Println(strings.Count(str,"i"))
fmt.Println(strings.Count(str,""))
fmt.Println(strings.Count(str2,""))
} #以上代码执行结果如下:
2
12
4

5.EqualFold

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
) func main() {
str := "Yinzhengjie"
fmt.Println(strings.EqualFold(str,"YINZHENGJIE")) //忽略大小写,但是如果除了大小写的差异之外,还有其他的差异就会判定为false.
fmt.Println(strings.EqualFold(str,"Yin"))
fmt.Println(strings.EqualFold(str,"yinzhengjie"))
fmt.Println(strings.EqualFold(str,"yINZHENGJIE"))
fmt.Println(strings.EqualFold(str,"yIN"))
} #以上代码执行结果如下:
true
false
true
true
false

6.Fields

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
"reflect"
) func main() {
str := "yinzhengjie is good boy!"
fmt.Println(str)
fmt.Println("str的类型是:",reflect.TypeOf(str))
list := strings.Fields(str)
fmt.Println(list)
fmt.Println("用Fields方法处理过的str类型是:",reflect.TypeOf(list))
}

7.HasPrefix

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
) func main() {
str := "尹正杰到此一游"
fmt.Println(strings.HasPrefix(str,"尹正杰")) //判断字符串是否以“尹正杰”开头。
fmt.Println(strings.HasPrefix(str,"正杰"))
} #以上代码执行结果如下:
true
false

8.HasSuffix

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
) func main() {
str := "尹正杰到此一游"
fmt.Println(strings.HasSuffix(str,"到此一游")) //判断字符串是否以“到此一游”结尾.
fmt.Println(strings.HasSuffix(str,"到此"))
}

9.Index

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

10.IndexAny

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
) func main() {
str := "尹正杰到此一游"
fmt.Println(strings.IndexAny(str,"正"))
fmt.Println(strings.IndexAny(str,"到此"))
fmt.Println(strings.IndexAny(str,"哈哈"))
} #以上代码执行结果如下:
3
9
-1

11.IndexRune

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

12.Join

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
"reflect"
) func main() {
str := []string{"yinzhengjie","is","a","good","boy!"}
fmt.Println("没有进行切片之前str的类型为:",reflect.TypeOf(str))
join_string := strings.Join(str,"···") //该方法可以将多个字符串切片数组进行拼接,使其成为一个字符串。可以指定每个字符串的间隔。
fmt.Println(join_string)
fmt.Println("用JOIN方法之后str的类型为:",reflect.TypeOf(join_string))
} #以上代码执行结果如下:
没有进行切片之前str的类型为: []string
yinzhengjie···is···a···good···boy!
用JOIN方法之后str的类型为: string

13.LastIndex

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
) func main() {
name := "yinzhengjie"
fmt.Println(strings.LastIndex(name,"i")) //匹配最后一个字母“i”的索引下标
fmt.Println(strings.LastIndex(name,"e"))
fmt.Println(strings.LastIndex(name,"尹")) //如果没有匹配到依然返回“-1”哟
} #以上代码执行结果如下:
9
10
-1

14.LastIndexAny

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

15.Repeat

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
) func main() {
fmt.Println(strings.Repeat("尹正杰 ",6)) //Repeat方法可以重复一个字符串的次数。
} #以上代码执行结果如下:
尹正杰 尹正杰 尹正杰 尹正杰 尹正杰 尹正杰

16.Replace

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
) func main() {
name := "yinzhengjie"
fmt.Println(strings.Replace(name,"y","Y",1)) //表示将name字符串中的“y”重定向成“Y”,后面的数字
// 表示匹配的次数,匹配一次表示只修改第一个匹配到的字符串,如果匹配到2次都做相同的操作。
fmt.Println(strings.Replace(name,"e","E",2))
fmt.Println(strings.Replace(name,"i","I",1))
fmt.Println(strings.Replace(name,"i","I",-1)) //注意,这个“-1”就表示从第一个开始匹配,
// 到最后一个结束,都做相同的操作,也就是将“i”修改为“I”
} #以上代码执行结果如下:
Yinzhengjie
yinzhEngjiE
yInzhengjie
yInzhengjIe

17.Split

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
"reflect"
) func main() {
name := "yinzhengjie"
fmt.Println(reflect.TypeOf(name))
list := strings.Split(name,"i") //表示以字符串中的字母“i”为分隔符,将这个字符串进行分离,进而生成了一个数组切片。
fmt.Println(list)
fmt.Println(reflect.TypeOf(list))
} #以上代码执行结果如下:
string
[y nzhengj e]
[]string

18.SplitAfter

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
) func main() {
name := "yinzhengjie"
fmt.Println(strings.SplitAfter(name,"i")) //SplitAfter这个方法表示在字符串中的字母“i”之后进行切割,
// 但是并不会覆盖到字母“i”,这一点跟Split方法是有所不同的哟!
} #以上代码执行结果如下:
[yi nzhengji e]

19.SplitAfterN

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
) func main() {
name := "#yinzhengjie#is#a#good#boy!#"
fmt.Println(strings.SplitAfterN(name,"#",3)) //表示将字符串name用“#”分割,分成的长度为3
fmt.Println(strings.SplitAfterN(name,"#",5))
fmt.Println(strings.SplitAfterN(name,"#",-1)) //注意,这个“-1”表示将这个字符串进行分割,以“#”为分隔符
} #以上代码执行结果如下:
[# yinzhengjie# is#a#good#boy!#]
[# yinzhengjie# is# a# good#boy!#]
[# yinzhengjie# is# a# good# boy!# ]

20.SplitN

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

21.Title

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
) func main() {
name := "yinzhengjie"
fmt.Println(strings.Title(name)) //该方法可以让首字母大写哟!
} #以上代码执行结果如下:
Yinzhengjie

22.ToLower

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
) func main() {
name := "YINZHENGjie"
fmt.Println(strings.ToLower(name)) //将大写字母转换成小写字母,如果已经是小写就不在错操作了。
} #以上代码执行结果如下:
yinzhengjie

23.ToLowerSpecial

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
//"strings"
"bytes"
"unicode"
"strings"
) func main() {
name := []byte("YINZHENGJIE")
str := "YZJ"
fmt.Println(string(bytes.ToLowerSpecial(unicode.AzeriCase,name))) //该方法可以将字节中的字母变为小写。
fmt.Println(strings.ToLowerSpecial(unicode.AzeriCase,str)) //该方法可以将字符串的字母变为小写。
} #以上代码执行结果如下:
yınzhengjıe
yzj

24.ToTitle

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
) func main() {
name := "Yinzhengjie"
fmt.Println(strings.ToTitle(name)) //该方法可以将小写字母变大写。
} #以上代码执行结果如下:
YINZHENGJIE

25.ToUpper

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
) func main() {
name := "yinzhengjie"
fmt.Println(strings.ToUpper(name)) //该方法也是将小写字母变成大写,从效果上来看跟ToTitle很相似。
} #以上代码执行结果如下:
YINZHENGJIE

26.Trim

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

27.TrimLeft与TrimRight

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
) func main() {
str := "#尹#正#杰#is#a#good#boy#"
fmt.Println(strings.TrimLeft(str,"#")) //表示只去掉左边的“#”号
fmt.Println(strings.TrimRight(str,"#")) //表示只去掉右边的“#”号
} #以上代码执行结果如下:
尹#正#杰#is#a#good#boy#
#尹#正#杰#is#a#good#boy

28.TrimSpace

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
) func main() {
str := " # 尹#正#杰#is#a#good#boy# \n "
fmt.Println("TrimSpace处理之前的样子:",str)
fmt.Println("TrimSpace处理之后的样子:",strings.TrimSpace(str)) //该方法可以脱去两边的空格和换行符。
fmt.Println("代码执行结束!")
} #以上代码执行结果如下:
TrimSpace处理之前的样子: # 尹#正#杰#is#a#good#boy# TrimSpace处理之后的样子: # 尹#正#杰#is#a#good#boy#
代码执行结束!

29.TrimSuffix

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
) func main() {
str := "尹正杰 love Golang"
fmt.Println(strings.TrimSuffix(str,"Golang")) //该方法可以从后面脱去以“Golang结尾的字符串”
fmt.Println(strings.TrimSuffix(str,"尹正杰")) //但是没办法从前面脱去特定的字符串“尹正杰”
} #以上代码执行结果如下:
尹正杰 love
尹正杰 love Golang

30.TrimPrefix

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"strings"
) func main() {
str := "尹正杰 love Golang"
fmt.Println(strings.TrimPrefix(str,"尹"))
fmt.Println(strings.TrimPrefix(str,"Golang"))
} #以上代码执行结果如下:
正杰 love Golang
尹正杰 love Golang

31.TrimFunc

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"bytes"
"strings"
) func main() {
s := []byte("yinzhengjie")
fmt.Println(string(bytes.TrimFunc(s,func(r rune)bool{ //可以去字节中的首字母或尾字母。
if r=='y' || r=='e'{
return true
}else{
return false
}
}))) name := "yinzhengjie"
res := strings.TrimFunc(name, func(r rune) bool { //可以去掉字符串的首字母或尾字母,注意,中间的字母并不能操作哟!
if r == 'y'|| r== 'e' {
return true
}else {
return false
}
})
fmt.Println(res)
} #以上代码执行结果如下:
inzhengji
inzhengji

32.TrimLeftFunc与TrimRightFunc

 /*
#!/usr/bin/env gorun
@author :yinzhengjie
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/
EMAIL:y1053419035@qq.com
*/ package main import (
"fmt"
"bytes"
"strings"
) func main() {
name := []byte("#yinzhengjie#")
fmt.Println(string(bytes.TrimLeftFunc(name,func(r rune)bool{ //只匹配字节的最左边
if r == '#' || r=='y'{ //注意这个地方是字节哟!
return true
}else{
return false
} }))) str := "#yinzhengjie#"
fmt.Println(strings.TrimLeftFunc(str, func(r rune) bool { //只匹配字符串的最左边,也要注意下面的条件判断是字节而不是字符串哟。
if r == '#' || r == 'y' { //注意是单引号而不是双引号!
return true
}else {
return false
}
})) //当然用TrimLeft方法也可以一行就搞定
fmt.Println(string(bytes.TrimLeft(name,"#"))) fmt.Println("--------我是分割线---------") //TrimRightFunc
fmt.Println(string(bytes.TrimRightFunc(name,func(r rune)bool{
if r == '#'{
return true
}else{
return false
} }))) fmt.Println(strings.TrimRightFunc(str, func(r rune) bool {
if r == '#' {
return true
}else {
return false
}
})) //当然用TrimRight方法也可以一行就搞定
fmt.Println(string(bytes.TrimRight(name,"#")))
} #以上代码执行结果如下:
inzhengjie#
inzhengjie#
yinzhengjie#
--------我是分割线---------
#yinzhengjie
#yinzhengjie
#yinzhengjie

  想要学习更多关于字符串处理的方法,使劲戳我

GoLang基础数据类型--->字符串处理大全的更多相关文章

  1. Golang的基础数据类型-字符串型

    Golang的基础数据类型-字符串型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字符型概述 上一篇博客学习了使用单引号括起来的单个字符就是字符类型,在Golang中有两种表 ...

  2. GoLang基础数据类型--->字典(map)详解

    GoLang基础数据类型--->字典(map)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   可能大家刚刚接触Golang的小伙伴都会跟我一样,这个map是干嘛的,是 ...

  3. GoLang基础数据类型-切片(slice)详解

    GoLang基础数据类型-切片(slice)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 数组的长度在定义之后无法再次修改:数组是值类型,每次传递都将产生一份副本.显然这种数 ...

  4. GoLang基础数据类型--->数组(array)详解

    GoLang基础数据类型--->数组(array)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Golang数组简介 数组是Go语言编程中最常用的数据结构之一.顾名 ...

  5. Python基础数据类型-字符串(string)

    Python基础数据类型-字符串(string) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版 ...

  6. golang基础教程——字符串篇

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是golang专题的第6篇文章,这篇主要和大家聊聊golang当中的字符串的使用. 字符串定义 golang当中的字符串本质是只读的字符 ...

  7. 010-python基础-数据类型-字符串操作

    1.移除空白 username.strip() 2.分割 names = "alex,jack,rain" names_1 = names.split(",") ...

  8. golang基础之三-字符串,时间,流程控制,函数

    strings和strconv的使用 strings strings.HasPrefix(s string,preffix string) bool:判断字符串s是否以prefix开头 stirngs ...

  9. GoLang基础数据类型---字典

    Map 是 Go 中的内置类型,它将键与值绑定到一起.可以通过键获取相应的值. 如何创建 map? 可以通过将键和值的类型传递给内置函数 make 来创建一个 map.语法为:make(map[Key ...

随机推荐

  1. GuiHelloWorld

    package com.home.test; import java.awt.Color; import java.awt.Cursor; import java.awt.Font; import j ...

  2. <构建之法>第三10、11、12章

    第十章 典型用户和场景 问题:如何更准确知道用户的需求是什么,设计出满足用户的软件? 第十一章 软件设计与实现 问题:软件设计过程中,如何管理设计变更? 第十二章 用户体验 问题:在何时开始设计用户体 ...

  3. windows的cmd下的find命令比bash(win10下的Ubuntu的bash)下的grep比较

    同样的一个catalina文件,windows的cmd下的find命令比bash下的grep要慢,windows确实占下风啊

  4. Nginx rewrite模块深入浅出详解

    rewrite模块(ngx_http_rewrite_module) nginx通过ngx_http_rewrite_module模块支持url重写.支持if条件判断,但不支持else.另外该模块需要 ...

  5. Qt_颜色选择对话框(QColorDialog)

    转自豆子空间 使用QColorDialog也很简单,Qt提供了getColor()函数,类似于QFileDialog的getOpenFileName(),可以直接获得选择的颜色. include &l ...

  6. ubuntu解压zip文件

    step1 # 安装解压软件 sudo apt-get install unzip step # 2 解压文件 unzip xxxxx.zip

  7. python 时间转换相关

    最近需要操作时间的地方相当的多,包括打点,包括时间转换. 罗列最近遇到的两个需求. 1. 关于上篇文章写的base64上传图片的问题,我使用了打点来计算解码需要多少时间.这个对时间精度要求是比较高的. ...

  8. Centos7 Journald 指令

    Journald是为Linux服务器打造的新系统日志方式,它标志着文本日志文件的终结.现在日志信息写入到二进制文件,使用journalctl阅读,要获得这些信息,Linux管理员将需要一些实践. Re ...

  9. mysql 创建表指定 字符类型与存储引擎

    DROP TABLE IF EXISTS apilog; /*==============================================================*/ /* T ...

  10. Maven环境配置及简单使用(二)

    Maven环境变量配置 配置Maven前先从官网下载相关版本,Maven下载地址:http://maven.apache.org/download.cgi,笔者使用最新版本apache-maven-3 ...