string 是日常开发中最常用的一个结构,string 相关工具主要有strings & strconv
,本篇就来看看这个两个工具。
strings
strings和Java中的StringUtils比较类似,直接看一下API吧,主要包含字符串查找、Trim、Split等
字符串查找
子串substr在s中,返回true:func Contains(s, substr string) bool {}
chars中任何一个Unicode字符在s中,返回true:func ContainsAny(s, chars string) bool {}
Unicode字符r在s中,返回true:func ContainsRune(s string, r rune) bool {}
位置相关
返回子串sep在字符串s中第一次出现的索引值,不在的话返回-1:func Index(s, sep string) int {}
返回字符c在s中第一次出现的位置:func IndexByte(s string, c byte) int {}
Unicode 代码点 r 在 s 中第一次出现的位置:func IndexRune(s string, r rune) int {}
chars中任何一个Unicode代码点在s中首次出现的位置,不存在返回-1:func IndexAny(s, chars string) int {}
查找字符 c 在 s 中第一次出现的位置,其中 c 满足 f(c) 返回 true:func IndexFunc(s string, f func(rune) bool) int {}
查找最后一次出现的位置:func LastIndex(s, sep string) int {}
func LastIndexByte(s string, c byte) int {}
func LastIndexAny(s, chars string) int {}
func LastIndexFunc(s string, f func(rune) bool) int {}
字串匹配
子串在s字符串中出现的次数func Count(s, sep string) int {}
重复count次str:func Repeat(str string, count int)string {}
大小写
转为小写:strings.ToLower(str string)string
转为大写:strings.ToUpper(str string)string
Trim
去掉字符串首尾空白字符:strings.TrimSpace(str string)
去掉字符串首尾空白字符strings.Trim(str string, cut string) string
去掉字符串首空白字符:strings.TrimLeft(str string, cut string) string
去掉字符串首空白字符strings.TrimRight(str string, cut string) string
字符串切割
返回str空格分隔的所有子串的slice:strings.Field(str string) []string {}
返回str split分隔的所有子串的slice:strings.Split(str string, split string) []string {}
字符串生成
用sep把s1中的所有元素链接起来strings.Join(s1 []string, sep string) string
把一个整数i转成字符串:strings.Itoa(i int) string
把一个字符串转成整数:strings.Atoi(str string)(int, error)
strconv
strconv 主要提供了数据类型转换的API。主要是string 与其他类型的转换,这里主要介绍一下常用的API:
字符串 & int 互转
string转int:func Atoi(str string) int{}
int转string:func Itoa(value int) string {}
Parse类
parse 函数通常包含待转型的变量,base(进制),baseSize(多少位,比如说8位、16位、32位、64位) string转bool 类型:ParseBool()
string转float:ParseFloat()
string转int:ParseInt()
string转无符号int:ParseUint()
Format类
format是将其他类型转化为string类型。 bool转string:FormatBool()
float转string:FormatFloat()
int转string:FormatInt()
uint转string:FormatUint()
Append 类
append 函数主要是将对应的类型转化为切片并append到目标切片中。 看其中一个实现就懂了:
func AppendBool(dst []byte, b bool) []byte {
if b {
return append(dst, "true"...)
}
return append(dst, "false"...)
}
append 一个bool转string后的结果:AppendBool()
append 一个float转string后的结果:AppendFloat()
append 一个int转string后的结果:AppendInt()
append 一个uint转string后的结果:AppendUint()
本篇要介绍的关于strings、strconv的API暂时就这么多。