golang中常用的字符串操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
package main
 
import (
    "fmt"
    "strconv"
    "strings"
)
 
func main() {
 
    //1.len()统计字符长度
    str := "hello" //golang中的编码统一为utf-8(ascii的字符(字母和数字)占一个字节,汉字占三个字节)
    fmt.Println(len(str))
 
    //2.字符串遍历时,同时处理有中文的问题r:=[]rune()
    str2 := "2008!北京欢迎您!"
    r := []rune(str2)
    for i := 0; i < len(r); i++ {
 
        fmt.Printf("字符%d=%c\n", i, r[i])
    }
 
    //3.字符串转整数:n,err := strconv.Atoi()
    n, err := strconv.Atoi("123456") //检验数字字符串转整数
    if err != nil {
        fmt.Println("转换错误", err)
    } else {
        fmt.Println("转成的结果是", n)
    }
 
    //4.整数转字符串 str := strconv.Itoa()
    str3 := strconv.Itoa(123)
    fmt.Printf("str = %v, str = %T\n", str3, str3)
 
    //5.字符串转[]byte()
    var bytes = []byte("hello go") //字母编码
    fmt.Printf("byte = %v\n", bytes)
 
    //6.ascii码 []byte转字符串
    str4 := string([]byte{97, 98, 99}) //编码转字符
    fmt.Println("str = ", str4)
 
    //7.十进制转2.8.16进制
    str5 := strconv.FormatInt(123, 2)
    str6 := strconv.FormatInt(123, 8)
    str7 := strconv.FormatInt(123, 16)
    fmt.Println("123对应的二进制数是 ", str5)
    fmt.Println("123对应的八进制数是 ", str6)
    fmt.Println("123对应的十六进制数是 ", str7)
 
    //8.查找子串是否在指定的字符串中: strings.Contains("seafood", "foo")
    b := strings.Contains("seafood", "foo") //b返回布尔值
    fmt.Println(b)
 
    //9.统计一个字符串中有几个指定的子串: strings.Count("ceheese", "e")
    num := strings.Count("ceheese", "e") //num返回e的个数
    fmt.Println(num)
 
    //10.不区分大小写的字符串比较(==是区分字母大小写的):         fmt.Println(string.EqualFold("abc", "Abc"))
    fmt.Println(strings.EqualFold("abc", "Abc")) //返回布尔值
    fmt.Println("abc" == "ABC")                  //区分大小写的字符串比较,返回布尔值
 
    //11.返回子串在字符串第一次出现的index值,如果没有返回-1: strings.Index("NLT_abc", "abc")
    str8 := strings.Index("NLT_abc", "abc") //返回首次出现的位置
    str9 := strings.Index("NLT_abc", "A")
    fmt.Println(str8)
    fmt.Println(str9)
 
    //12.返回子串在字符串第一次出现的index值,如果没有返回-1: strings.LastIndex("NLT_abc_S", "S")
    str10 := strings.Index("NLT_abc_S", "T") //返回首次出现的位置
    str11 := strings.Index("NLT_abc_S", "S")
    fmt.Println(str10)
    fmt.Println(str11)
 
    //13.将指定的几个子串替换成另一个子串:strings.Replace("go go hello", "go", "go语言", n)
    //n可以指定你希望替换几个,如果n=-1表示全部替换
    str12 := strings.Replace("go go hello", "go", "go 语言", 2)
    fmt.Println(str12)
 
    //14.按照指定的某个字符,为分割标识,将一个字符串拆分成字符串数组:strings.Split("hello,world,lady", ",")
    str13 := strings.Split("hello,world,lady", ",")
    fmt.Println(str13)
 
    //15.字符串的字母进行大小写的转换:strings.ToLower()
    //strings.ToUpper()
    str14 := strings.ToLower("HeLlO, wOrLd")
    str15 := strings.ToUpper("StAr, GaZeR")
    fmt.Println(str14, str15)
 
    //16.将字符串左右两边的空格去掉:strings.TrimSpace("")
    str16 := strings.TrimSpace("    abc    ")
    fmt.Println(str16)
 
    //17.将字符串左右两边指定的字符去掉:strings.Trim(),可同时去掉几种不同的字符
    str17 := strings.Trim("!def!", "!")
    fmt.Println(str17)
 
    //18.将字符串左边的指定字符去掉:strings.TrimLeft()
    //将字符串右边的指定字符去掉:strings.TrimRight()
    str18 := strings.TrimLeft("!!!!ghi", "!")
    str19 := strings.TrimRight("jkl~~~", "~")
    fmt.Println(str18, str19)
 
    //19.判断字符串是否以指定的字符串开头/结束 strings.HasPrefix()/strings.HasSuffix()
    fmt.Println(strings.HasPrefix("star gazer", "s")) //true
    fmt.Println(strings.HasSuffix("star gazer", "r")) //true
}

  

posted @   Star_Gazer  阅读(78)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示