1、统计字符串的长度,按照字符(len)
package main
import "fmt"
func main() {
str := "hello呗" //一个字母占一个字节、汉字占3个字节
fmt.Println("string = ", len(str)) //len统计长度
}
返回
string = 8
2、字符串遍历,同时处理有中文的问题(r = []rune)
package main
import "fmt"
func main() {
str := "hello呗"
str2 := []rune(str) //rune会将str的字符串中的中文进行处理
//如果不处理,那么循环拿到的就是他的字符码了
for i :=0; i < len(str2); i++ {
fmt.Printf("字符=%c\n",str2[i])
}
}
返回
字符=h
字符=e
字符=l
字符=l
字符=o
字符=呗
如果不使用rune则会出现如下情况
字符=h
字符=e
字符=l
字符=l
字符=o
字符=å
字符=*
字符=*
3、字符串转整数
package main
import (
"fmt"
"strconv"
)
func main() {
n, err := strconv.Atoi("12") //strconv.Atoi字符串转换
//将字符串12转换为整数赋予给变量n
//如果该字符串不能转换,则赋值给变量err方便判断
if err != nil {
fmt.Println("转换错误",err)
}else{
fmt.Println("转换的结果是",n)
}
}
返回
转换的结果是 12
4、整数转字符串
package main
import (
"fmt"
"strconv"
)
func main() {
str := strconv.Itoa(12345) //将数字12345转换为字符串赋值给str
fmt.Printf("str=%v,str=%T",str,str) //输出字符串值和类型
}
返回
str=12345,str=string
5、字符串转byte
package main
import (
"fmt"
)
func main() {
var bytes = []byte("hello go")
fmt.Printf("bytes=%v\n",bytes)
}
//返回ASCLL码
//bytes=[104 101 108 108 111 32 103 111]
6、byte 转字符串
package main
import (
"fmt"
)
func main() {
str := string([]byte{97,98,99})
fmt.Printf("bytes=%v\n",str)
}
返回
bytes=abc
//这里将ASCLL码转换成对应的一个字符
//97,98,99
//a b c
7、十进制转换(2、8、16进制)
package main
import (
"fmt"
"strconv"
)
func main() {
str := strconv.FormatInt(123,2) //传入的参数,123是要转的数字,2是转换的类型
fmt.Printf("123对应的二进制=%v\n",str)
str2 := strconv.FormatInt(123,8)
fmt.Printf("123对应的8进制=%v\n",str2)
str3 := strconv.FormatInt(123,16)
fmt.Printf("123对应的16进制=%v\n",str3)
}
返回
123对应的二进制=1111011
123对应的8进制=173
123对应的16进制=7b
8、查找子串是否在指定的字符串中
package main
import (
"fmt"
"strings"
)
func main() {
b := strings.Contains("seafood","foo") //判断字符串"seafood"中是否包含字符串"foo"
//如果包含,则赋值给b变量 true,反之赋予false
fmt.Printf("b=%v\n",b)
}
返回
b=true
9、统计一个字符串中有几个子串
package main
import (
"fmt"
"strings"
)
func main() {
num := strings.Count("ceheese","e")
fmt.Printf("num=%v",num)
}
返回
num=4 //包含字符串e 的有4个,如果没有的话会返回0,比如统计一篇文章中有几个关键字
10、不区分大小写的字符串比较
package main
import (
"fmt"
"strings"
)
func main() {
b := strings.EqualFold("abc", "ABC")
fmt.Printf("b=%v\n", b)
}
返回
true
//这里是因为使用了EqualFold 不区分大小写的
//比如后面要输入验证码,我们通常是不区分大小写来用的
//当然比较详细的还是要区分大小写的
11、返回子串在字符串第一处出现的index值,如果没有返回-1
package main
import (
"fmt"
"strings"
)
func main() {
index := strings.Index("NLT_abc", "abc" )
//返回后面的字符串abc在第一次字符串中从那位开始出现的
//如果没有出现则会返回-1
fmt.Printf("index=%v\n",index)
}
返回
index=4
12、返回子串在字符串最后一次出现的位置
package main
import (
"fmt"
"strings"
)
func main() {
index := strings.LastIndex("go golang","go")
fmt.Printf("index=%v\n",index)
}
返回
index=3
13、将指定的子串替换成另一个字符串
package main
import (
"fmt"
"strings"
)
func main() {
str2 := strings.Replace("go go hello", "go", "北京",1)
//替换第一个的话, 结尾的值设置为1,替换两个输入2,-1全部替换
fmt.Printf("index=%v\n",str2)
}
返回
index=北京 go hello
14、 按照指定的某个字符,为分割标识,将一个字符串拆分成数组
package main
import (
"fmt"
"strings"
)
func main() {
strArr := strings.Split("hello,wrold,ok",",")
//以逗号拆分字符串赋值到strArr数组
fmt.Printf("index=%v\n",strArr)
}
返回
index=[hello wrold ok]
15、将字符串的字母进行大小写的转换
package main
import (
"fmt"
"strings"
)
func main() {
str := "goLang Hello"
//全小写
str2 := strings.ToLower(str)
fmt.Printf("index=%v\n",str2)
//全大写
str3 := strings.ToUpper(str)
fmt.Printf("index=%v\n",str3)
}
返回
index=golang hello
index=GOLANG HELLO
16、将字符串左右的空格去掉
package main
import (
"fmt"
"strings"
)
func main() {
str := strings.TrimSpace(" tn a lone gopher ntrn ")
fmt.Printf("str=%v\n",str)
}
返回
str=tn a lone gopher ntrn
17、将字符串两边指定的字符串去掉
package main
import (
"fmt"
"strings"
)
func main() {
str1 := strings.Trim("! hello !", " !") //字符串 "! hello !"
//我想将第一个字符串左右两边的空格和感叹号都去掉
//那么在第二个位置就填写空格和感叹号
fmt.Printf("str=%v\n",str1)
}
返回
str=hello
18、判断字符串是否以指定的字符串开头
package main
import (
"fmt"
"strings"
)
func main() {
str2 := strings.TrimLeft("! hello !", " !")
//strings.TrimLeft 将左边的值去除
fmt.Printf("str=%v\n",str2)
str3 := strings.TrimRight("! hello !", " !")
//strings.TrimRight 将右边的值去除
fmt.Printf("str=%v\n",str3)
}
返回
str=hello !
str=! hello
19、判断字符串是否以指定的字符串开头
package main
import (
"fmt"
"strings"
)
func main() {
str := strings.HasPrefix("ftp://192.168.10.1","ftp")
fmt.Printf("str=%v\n",str)
}
返回
str=true
20、判断字符串是否以指定的字符串结束
package main
import (
"fmt"
"strings"
)
func main() {
str := strings.HasSuffix("NLT_abc.jpg","abc")
fmt.Printf("str=%v\n",str)
}
返回
str=false