字符串、strings、strconv

字符串是UTF-8字符的一个序列。
字符串是字节的定长数组。
解释字符串,包含转义字符,非解释字符串,不包含转义字符。
字符串可以使用比较运算符进行比较,且按照内存中的字节来对比。
获取字符串所占的字节长度:len(str)
获取字符串中的字节地址是非法的。&str[i]

字符串拼接:
s = s1 + s2
使用+号并不高效,更好的办法是使用strings.Join,
字符缓冲更给力(bytes.Buffer) 谁线的没事,这么恶心啊,这么做。。。
字符串(字节数组)转换为UTF-8字符数组:
strarry := []rune("网建英")
len(strarry)获取底层数组的长度。

Go 中使用string包来完成对字符串的主要操作。


HasPrefix判断字符串s是否以prefix开头
strings.HasPrefix(s, prefix string) bool

是否以suffix结尾
strings.HasSuffix(s, suffix string) bool

s是否包含substr
strings.Contains(s, substr string) bool

str在s中第一次出现的第一个字符的位置
strings.Index(s, str string) int

最后一次出现的第一个字符的位置
strings.LastIndex(s, str string) int

非ASCII码在父字符串中出现的位置
strings.IndexRune(s string, r rune) int

替换在str中的前n个old字符,n=-1则替换所有
strings.Replace(str, old, new, n) string

统计str在s中出现的非重叠次数
strings.Count(s, str string) int

重复count次字符串并返回新字符串
strings.Repeat(s, count int) string

全部变小写
strings.ToLower(s) string

全部变大写
strings.ToUpper(s) string

string.TrimSpace(s)剔除字符串开头和结尾的空白符号

string.Trim(s,"cut")提出开头结尾的"cut"

TrimLeft剔除开头的。。。

TrimRight

string.Fields(s)利用空白作为分隔符将字符串分割为若干块,并返回一个slice。
如果字符串只包含空白符号,返回一个长度为0的slice

string.Split(s,sep)自定义分割符号对字符串分割,返回slice

将元素类型为 string 的 slice 使用分割符号来拼接组成一个字符串
strings.Join(sl []string, sep string) string,将不同元素连接起来用sep

strings.NewReader(str)用于生成一个Reader并读取字符串中的内容,然后返回指向该Reader的指针。

Read()从[]byte中读取内容。

ReadByte()和ReadRune()从字符串中读取下一个byte或者rune。


字符串和其它类型的转换(strconv)
该包包含了一些变量用于获取程序运行的操作系统平台下 int 类型所占的位数
strconv.IntSize

任何类型 T 转换为字符串总是成功的。
strconv.itoa(i int) string 返回i代表的十进制数的字符串

strconv.FormatFloat(f float64, fmt bute, prec int, bitSize int)string
将64位浮点型的数字转换为字符串,其中fmt表示格式(b\e\f\g),prec表示精度,bitSize则使用32表示float32,64表示float64

字符串类型转换为数字类型
strconv.Atoi(s string)(i int, err error)将字符串转换为int型
strconv.ParseFloat(s string, bitSize int)(f float,err error)将字符串转换为float64型
利用多返回值的特性,这些函数会返回 2 个值,第 1 个是转换后的结果(如果转换成功),第 2 个是可能出现的错误,因此,我们一般使用以下形式来进行从字符串到其它类型的转换
val, err = strconv.Atoi(s)

 

posted on 2019-08-19 23:40  暮城暮雪  阅读(269)  评论(0编辑  收藏  举报

导航