Golang字符串函数认识(一)

时间:2022-06-01 19:44:42
package main
import (
"fmt"
"strings"
"strconv"
) func main(){
//返回字符串的(字节)长度,相当于PHP的strlen
str := "hello世界" //11 ,golang的编码统一为utf-8,字母和数字分别占一个字节,汉子占用3个字节
// str := "hello" //
fmt.Println(len(str)) //字符串遍历
str2 := "hello世界"
//如果有中文,需要转切片,不然会出现乱码,因为是按照字符串的字节长度遍历
str2_r := []rune(str2)
for i := ; i < len(str2_r); i++ {
fmt.Printf("%c\n",str2_r[i])
} //字符串转整数
//第一个参数是要转化成的字符串,第二个是错误信息.这里需要引用strconv包
n, err := strconv.Atoi("")
if err != nil { //如果有错
fmt.Println("转换错误", err)
} else { //如果成功
fmt.Println("转换成功", n)
} //整数转字符串
str = strconv.Itoa()
fmt.Printf("str=%v, str=%T", str, str) //str=12345, str=string //字符串转[]byte
var bytes = []byte("hello golang")
fmt.Println(bytes) //str=12345, str=string[104 101 108 108 111 32 103 111 108 97 110 103] //[]byte转字符串
str = string([]byte{, , })
fmt.Println(str) //abc 的asc码分别是97,98,99 //十进制转化成2,8,16进制,返回对应的字符串
str = strconv.FormatInt(, )
fmt.Printf("123对应的二进制是=%v\n", str)
str = strconv.FormatInt(, )
fmt.Printf("123对应的八进制是=%v\n", str)
str = strconv.FormatInt(, )
fmt.Printf("123对应的十六进制是=%v\n", str)
//123对应的二进制是=1111011
//123对应的八进制是=173
//123对应的十六进制是=7b //判断一个字符串中是否包含指定字符串 ,相当于php中的strpos,但是php中可能会返回下标
status := strings.Contains("hello world", "hello")
fmt.Printf("status=%v\n", status) //status=true //统计一个字符串中有几个指定的字符
count := strings.Count("hello world", "l")
fmt.Printf("字符存在个数:%v\n", count) //字符存在个数:3;如果没有,则0 //字符串比较:不区分大小写
status = strings.EqualFold("abc", "ABC")
fmt.Printf("status=%v\n", status) //status=true //字符串比较:区分大小写 两个=
fmt.Printf("status=%v", "abc" == "ABC")//status=false //返回子字符串在指定字符串中第一次出现的index值(位置),如果没有返回-1
index := strings.Index("test_str", "s")
fmt.Printf("index=%v", index) //index=2
}