小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
我们在golang中也会经常使用已经存在的库。接下来我们介绍一下我们常用的golang库有哪些:
字符串相关
strings
普通操作
func main() {
a := "滋溜滋溜"
b := "哈哈哈"
fmt.Println(strings.Compare(a,b))//字符串比较如果相等为0,不相等-1
fmt.Println(strings.Contains(a,"滋"))//是否包含某字符或字符串
fmt.Println(strings.ContainsAny(a,"滋&溜"))//任意一个字符存在都返回true 判断多个字符用&相连
fmt.Println(strings.Count(a,"滋"))//字符串出现次数,如果后面的字符为空时返回字符串长度+1
}
字符串分割
包含三组六种函数,Fields 和 FieldsFunc、Split 和 SplitAfter、SplitN 和 SplitAfterN
Split(s, sep) 和 SplitN(s, sep, -1) 相同;SplitAfter(s, sep) 和 SplitAfterN(s, sep, -1) 相同。
func main() {
//切片可以使用fmt.Printf("%q",切片)打印
s := "this is my world"
strings.Fields(s)//用空格分割字符串
strings.FieldsFunc(" foo bar baz ", unicode.IsSpace)//指定字符分割
s1 := "今,天,是,个,好,日,子"
fmt.Printf("%q",strings.Split(s1, ","))//如果是空将分割每个字符
fmt.Printf("%q",strings.SplitAfter(s1,"s"))//分割后保留分割时的条件字符串
fmt.Printf("%q",strings.SplitN(s1,",",2))//n表示返回的切片的大小
fmt.Printf("%q",strings.SplitAfterN(s1,",",2))//n表示返回的切片的大小
}
判断前后缀
func main(){
s := "所以还是可以的"
strings.HasSuffix(s, "的")//判断后缀
strings.HasPrefix(s,"所")//判断前缀
}
字符串拼接
//使用+拼接
pinjie1 := "完美世界"+"还好吗"
fmt.Println(pinjie1)
//使用Sprintf拼接
s := "完美世界"
res := fmt.Sprintf("%s%s", s, "哈哈哈")
fmt.Println(res)
//使用strings.join拼接
s1 := []string{s,"嘿嘿哈哈"}
join := strings.Join(s1, " ==== ")
fmt.Println(join)
//使用builder,官方推荐
s3 := "hello"
s4 := "world"
var build strings.Builder
build.WriteString(s3)
build.WriteString(s4)
s5 := build.String()
fmt.Println(s5)
其他操作
func main() {
s := "are you ok"
strings.Index(s, "r")//字符在字符串的位置 如果是中文字符可能是占两个字符
fmt.Println("ba"+strings.Repeat("na",2))//重复字符串n次
fmt.Println(strings.Replace(s,"a","b",1))//替换几个字符串
fmt.Println(strings.ReplaceAll(s,"o","b"))//替换全部字符串
fmt.Println(strings.ToLower(s))//转小写
fmt.Println(strings.ToUpper(s))//转大写
fmt.Println(strings.Title(s))//title会将首字母大写
fmt.Println(strings.Trim(s,"a"))//去掉左侧或右侧某个字符
}
strconv
Atoi
string类型转换成int类型
Itoa
int转换成string
ParaseType系列
将string转换成指定Type类型
b, err := strconv.ParseBool("true")
f, err := strconv.ParseFloat("3.1415", 64)
i, err := strconv.ParseInt("-2", 10, 64)
u, err := strconv.ParseUint("2", 10, 64)
FormatType系列
将给定类型数据格式化为string类型数据的功能
s1 := strconv.FormatBool(true)
s2 := strconv.FormatFloat(3.1415, 'E', -1, 64)
s3 := strconv.FormatInt(-2, 16)
s4 := strconv.FormatUint(2, 16)