strings和strconv包, 字符串作为一种基本的数据解构,每种语言都有一些对于字符串的预定义处理函数,go语言中使用strings包来完成对字符串的操作
- 前缀与后缀
- HasPrefix判断字符串s是否以prefix开头
strings.HasPrefix(s, prefix string) bool
- HasSuffix 判断字符串s是否以suffix结束
strings.HasSuffix(s, suffix string) bool
package main import ( "fmt" "strings" ) func main() { var str string = "this is an example" fmt.Println(strings.HasPrefix(str, "this")) // true fmt.Println(strings.HasSuffix(str, "example")) // true fmt.Println(strings.HasSuffix(str, "exam")) // false }
- Contains: 判断字符串s是否包含str
strings.Contains(s, str string) bool
- 判断字符串在当前字符串出现的位置
- Index: 返回字符串str在字串s中的索引, 返回-1,表示字符串s不含含字符串str
strings.Index(s, str string) int
- LastIndex: 返回字符串str在字符串s中出现位置的索引, 返回-1表示s中不包含str
- IndexRune: 返回单个字符在字符串s中的位置,建议尽量使用IndeRune对字符进行定位
strings.IndexRune(s string, r rune) int
package main import ( "fmt" "strings" ) func main() { var str string = "hello, i am kiven" fmt.Println(strings.Index(str, "am")) // 返回首次出现am的位置 fmt.Println(strings.LastIndex(str, "i")) // 自右向左查询首次出现i的位置 fmt.Println(strings.IndexRune(str, 'i')) // 查询单个字符i出现的位置 }
- 字符串的替换
Replace 用于字符串str中字符串old替换为new的,并返回新的字符串, 如果n=-1则替换所有字符串old为字符串new strings.Replace(str, old, new, n) string
- 统计字符串出现的次数
Count 用于计算字符串str在字符串s出现的的次数
string.Count(s, str string) int
package main import ( "fmt" "strings" ) func main() { var str string = "hello, i am kiven" var mangG = "gggggggggg" fmt.Println(strings.Replace(str, "kiven", "anan", 1)) fmt.Println(strings.Count(mangG, "gg")) }
- 重复字符串
- Repeat用于重读count字符串s并返回新的字符串
strings.Repeat(s, count int ) string
- 修改字符串大小写
- ToLower: 将字符串中的字符全部转换为相应的小写字符
strings.LoLower(s) string
- ToUpper: 将字符串中字符全部转换为相应的大写字符
strings.ToUpper(s) string
-
package main import ( "fmt" "strings" ) func main() { var orig string = "hello, i am kiven" var lower string var upper string lower = strings.ToLower(orig) upper = strings.ToUpper(orig) fmt.Println(lower) fmt.Println(upper) }
- 修剪字符串
- strings.TrimSpace(s): 去除字符串s两端的空白字符
- strings.Trim(s, "cut"): 去除开头和结尾的cut字符串
- 分割字符串
- strings.Fields(s): 分割字符串, 返回你对应的slice
- strings.Split(s, sep): 用指定的字符来对字符串进行分割,返回一个slice
- strings.Join(s1 []string, sep string)string:用于将 元素类型为string的slice使用分隔符拼接为一个字符串
- 字符串与其他类型的转换
与字符串相关的类型转换都是通过strconv包来实现的 任何类型T转换为字符串都是成功的
- 获取程序运行的操作系统所占的位数 strconv.IntSize
- 数字类型转换为字符串类型
- strconv.Itoa(i int) string 返回i对应的字符串的十进制数
- strconv.FormatFloat(f float64) string: 将64位浮点型转换为字符串
- 字符串转换为数字类型
- strconv.Atoi(s string)(i int, err error): 将字符串转换为int类型
- strconv.ParseFloat(s string)(f float64, err error): 将字符串类型转化为64 浮点型