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暂时就这么多。