Go语言基础–strings&strconv浅析

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