Go语言标准库文档中文版 | Go语言中文网 | Golang中文社区 | Golang中国Go语言文档中文版,Go语言中文网,中国 Golang 社区,Go语言学习园地,致力于构建完善的 Golang 中文社区,Go语言爱好者的学习家园。分享 Go 语言知识,交流使用经验https://studygolang.com/pkgdoc
package main
import "fmt"
func main() {
str := "hello呗" //一个字母占一个字节、汉字占3个字节
fmt.Println("string = ", len(str)) //len统计长度
}
返回
string = 8
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
字符=å
字符=*
字符=*
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
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
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]
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
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
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
package main
import (
"fmt"
"strings"
)
func main() {
num := strings.Count("ceheese","e")
fmt.Printf("num=%v",num)
}
返回
num=4 //包含字符串e 的有4个,如果没有的话会返回0,比如统计一篇文章中有几个关键字
package main
import (
"fmt"
"strings"
)
func main() {
b := strings.EqualFold("abc", "ABC")
fmt.Printf("b=%v\n", b)
}
返回
true
//这里是因为使用了EqualFold 不区分大小写的
//比如后面要输入验证码,我们通常是不区分大小写来用的
//当然比较详细的还是要区分大小写的
package main
import (
"fmt"
"strings"
)
func main() {
index := strings.Index("NLT_abc", "abc" )
//返回后面的字符串abc在第一次字符串中从那位开始出现的
//如果没有出现则会返回-1
fmt.Printf("index=%v\n",index)
}
返回
index=4
package main
import (
"fmt"
"strings"
)
func main() {
index := strings.LastIndex("go golang","go")
fmt.Printf("index=%v\n",index)
}
返回
index=3
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
package main
import (
"fmt"
"strings"
)
func main() {
strArr := strings.Split("hello,wrold,ok",",")
//以逗号拆分字符串赋值到strArr数组
fmt.Printf("index=%v\n",strArr)
}
返回
index=[hello wrold ok]
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
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
package main
import (
"fmt"
"strings"
)
func main() {
str1 := strings.Trim("! hello !", " !") //字符串 "! hello !"
//我想将第一个字符串左右两边的空格和感叹号都去掉
//那么在第二个位置就填写空格和感叹号
fmt.Printf("str=%v\n",str1)
}
返回
str=hello
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
package main
import (
"fmt"
"strings"
)
func main() {
str := strings.HasPrefix("ftp://192.168.10.1","ftp")
fmt.Printf("str=%v\n",str)
}
返回
str=true
package main
import (
"fmt"
"strings"
)
func main() {
str := strings.HasSuffix("NLT_abc.jpg","abc")
fmt.Printf("str=%v\n",str)
}
返回
str=false