栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

go去掉最后一个字符

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

go去掉最后一个字符

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

作者:尹正杰

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

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

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

1.Contains

1

7

8 package main9

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 true27 false28 true

2.ContainsAny

1

7 package main8

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 false26 true27 true28 false

3.ContainsRune

1

7

8 package main9

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 true25 false

4.Count

1

7

8 package main9

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

7

8 package main9

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 true29 false30 true31 true32 false

6.Fields

1

7

8 package main9

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

7

8 package main9

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 true25 false

8.HasSuffix

1

7

8 package main9

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

7

8 package main9

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

7

8 package main9

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

7

8 package main9

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

7

8 package main9

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的类型为: []string27 yinzhengjie···is···a···good···boy!28 用JOIN方法之后str的类型为: string

13.LastIndex

1

7

8 package main9

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

7

8 package main9

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

7

8 package main9

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

7

8 package main9

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 Yinzhengjie29 yinzhEngjiE30 yInzhengjie31 yInzhengjIe

17.Split

1

7

8 package main9

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 string29 [y nzhengj e]30 []string

18.SplitAfter

1

7

8 package main9

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

7

8 package main9

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

7

8 package main9

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

7

8 package main9

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

7

8 package main9

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

7

8 package main9

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ıe29 yzj

24.ToTitle

1

7

8 package main9

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

7

8 package main9

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

7

8 package main9

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

7

8 package main9

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

7

8 package main9

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

7

8 package main9

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 尹正杰 love25 尹正杰 love Golang

30.TrimPrefix

1

7

8 package main9

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 Golang24 尹正杰 love Golang

31.TrimFunc

1

7

8 package main9

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 returntrue21 }else{22 returnfalse23 }24 })))25

26 name := "yinzhengjie"

27 res := strings.TrimFunc(name, func(r rune) bool { //可以去掉字符串的首字母或尾字母,注意,中间的字母并不能操作哟!28 if r == 'y'|| r== 'e'{29 returntrue30 }else{31 returnfalse32 }33 })34 fmt.Println(res)35 }36

37

38

39 #以上代码执行结果如下:

40 inzhengji41 inzhengji

32.TrimLeftFunc与TrimRightFunc

1

7

8 package main9

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 returntrue21 }else{22 returnfalse23 }24

25 })))26

27 str := "#yinzhengjie#"

28 fmt.Println(strings.TrimLeftFunc(str, func(r rune) bool { //只匹配字符串的最左边,也要注意下面的条件判断是字节而不是字符串哟。29 if r == '#' || r == 'y' { //注意是单引号而不是双引号!30 returntrue31 }else{32 returnfalse33 }34 }))35

36 //当然用TrimLeft方法也可以一行就搞定37 fmt.Println(string(bytes.TrimLeft(name,"#")))38

39 fmt.Println("--------我是分割线---------")40

41

42 //TrimRightFunc43 fmt.Println(string(bytes.TrimRightFunc(name,func(r rune)bool{44 if r == '#'{45 returntrue46 }else{47 returnfalse48 }49

50 })))51

52 fmt.Println(strings.TrimRightFunc(str, func(r rune) bool {53 if r == '#'{54 returntrue55 }else{56 returnfalse57 }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

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

有疑问加站长微信联系(非本文作者)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/945546.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号