本章纲要
- 1、按字节统计字符串长度
- 2、字符串遍历,同时处理有中文的问题
- 3、字符串转整数
- 4、整数转字符串
- 5、字符串转 []byte 切片
- 6、[]byte 转成字符串
- 7、把十进制转成 2,8,16进制的数
- 8、查找子串是否在对应的字符串中
- 9、统计一个字符串中有几个对应的子串
- 10、不区分大小写字符串比较(==区分大小写)
- 11、返回子串在字符串中第一次出现的index值(下标)
- 12、返回子串在字符串中最后一次出现的index值(下标)
- 13、将制定子串替换成另一个子串(获得新串)
- 14、按照指定某个字符,为分隔标识,将一个字符串拆分成字符串数组
- 15、字符串字母大小写替换
- 16、将字符串左右两边空格去掉
- 17、将字符串左右两边指定字符去掉
- 18、将字符串左边指定字符去掉
- 19、将字符串右边指定字符串去掉
- 20、判断字符串是否以指定的字符开头(前缀)
- 21、判断字符串是否以指定的字符结尾(后缀)
1、按字节统计字符串长度
中文字符字节数为8
len(str)
内置函数builtin,不用另外引包
2、字符串遍历,同时处理有中文的问题
先将字符串转成切片再遍历输出
r := []rune(str)
使用举例
str := "hello北京"
r := []rune(str)
for i:=0;i<len(r);i++{
fmt.Printf("字符=%c\n",r[i])
}
3、字符串转整数
若转换不成功会返回erro,即err有值
n,err := strconv.Atoi("123")
注意引包 strconv
n,err := strconv.Atoi("123")
if err != nil{
fmt.Printf("转换错误")
}
else{
fmt.Printf("转换成功")
}
4、整数转字符串
注意引包 strconv
str = strconv.Itoa(12345)
5、字符串转 []byte 切片
应用:将字符串写入二进制文件
var bytes = []byte("hello go")
此时若是输出,那么就是输出ASCII编码
6、[]byte 转成字符串
str= string([]byte{97,98,99})
此时是将97,98,99对应字符组成字符串赋值给str
7、把十进制转成 2,8,16进制的数
注意引包 strconv
str = strconv.FormatInt(123,2) //123:要转换的十进制数 2——>进制
返回对应的字符串
8、查找子串是否在对应的字符串中
注意引包 Contains、strings
b := strings.Contains("seafoo","foo")
返回布尔值,有为真,没有为假
9、统计一个字符串中有几个对应的子串
注意引包 Count、strings
n := strings.Count("cheeze","e")
有则返回个数,没有返回0
此时 n=3
10、不区分大小写字符串比较(==区分大小写)
注意引包strings
b := strings.EqualFold("abc","Abc") //返回true
b == "abc" == "Abc" //返回false
应用密码校验
11、返回子串在字符串中第一次出现的index值(下标)
注意引包strings
如果没有返回-1
loc = strings.Index("NLT_abc","abc") //4
12、返回子串在字符串中最后一次出现的index值(下标)
注意引包strings
如果没有返回-1
loc = strings.LastIndex("go golang","go") //3
13、将制定子串替换成另一个子串(获得新串)
n表示希望替换几个,n=-1表示全部替换
strings.Replace("go go hello","go","go语言",1) //主串 要替换的子串 替换目标 替换个数
也可以
str2 := "go go hello"
str := string.Repalce(str2,"go","北京",-1) //str2本身并没有发生变化
14、按照指定某个字符,为分隔标识,将一个字符串拆分成字符串数组
strArr := strings.Split("hello,world,ok",",") //strArr为数组
15、字符串字母大小写替换
(1)变成小写
str := strings.ToLower("Go") //换成小写
或者
str := "goLang Hello"
str := string.ToLower(str) //输出 golang hello
(2)变成大写
str := strings.ToUpper("Go") //换成大写
或者
str := "goLang Hello"
str := string.ToUpper(str) //输出 GOLANG HELLO
16、将字符串左右两边空格去掉
str := strings.Trim.Space(" tn a lone gopher ntm ")
17、将字符串左右两边指定字符去掉
str := strings.Trim("! hello! ","! ") //去掉左右两边的"! "
18、将字符串左边指定字符去掉
str := strings.TrimLeft("! hello! ","! ") //去掉左边的"! "
19、将字符串右边指定字符串去掉
str := strings.TrimRight("! hello! ","! ") //去掉右边的"! "
20、判断字符串是否以指定的字符开头(前缀)
b := strings.HasPrefix("ftp://192.168.10.1","ftp") // true
21、判断字符串是否以指定的字符结尾(后缀)
b := strings.HasSuffix("ftp://192.168.10.1","abc") // false