文章目录
最近做笔试题的时候经常会碰到输入花了很久时间的问题,就想记录一下。这个对做字符串类型的题有极大的帮助。
Strings包
package main
import (
"fmt"
"strings"
)
func main() {
// 判断一个字符串是否在另一个字符串中
contains := strings.Contains("substr", "s")
fmt.Println(contains) // true
// 判断一个字符串是否存在另一个字符串的任意字符
any := strings.ContainsAny("kaka", "nihao")
fmt.Println(any) // true
// 把一个字符串转小写
lower := strings.ToLower("KAKA")
fmt.Println(lower) // kaka
// 把一个字符串转大写
upper := strings.ToUpper("kaka")
fmt.Println(upper) // kaka
//判断两个字符串是否相同(无视大小写)
equal := strings.EqualFold("hello", "Hello")
fmt.Println(equal) //true
//判断是否含有前缀,区分大小写
prefix := strings.HasPrefix("hello", "he")
fmt.Println(prefix) //true
//判断是否含有后缀,区分大小写
suffix := strings.HasSuffix("hello", "llo")
fmt.Println(suffix) //true
//统计子串出现的次数
count := strings.Count("hello", "l")
fmt.Println(count) //2
// 判断一个字符串在另一个字符串第一次出现的位置,不存在返回-1
index := strings.Index("Hello World", "or")
fmt.Println(index) // 7
//判断一个字符串中的任意一个字符在另一个字符串第一次出现的位置,不存在返回-1
indexany := strings.IndexAny("hello", "abcde")
fmt.Println(indexany) //1
//判断一个字符串最后出现的位置,不存在返回-1 同样有any不再赘述
lastindex := strings.LastIndexAny("hello", "l")
fmt.Println(lastindex)
//替换
replace := strings.Replace("hello", "h", "k", -1)
fmt.Println(replace) //kello
//去掉前后端的指定字符
trim := strings.Trim("!!hel!lo!", "!")
fmt.Println(trim) //hel!lo
//去掉指定前缀
trimprefix := strings.TrimPrefix("hello", "he")
fmt.Println(trimprefix) //llo
//去掉指定后缀
trimsuffix := strings.TrimSuffix("hello", "llo")
fmt.Println(trimsuffix) //he
//按照空格切分字符串,返回切片
field := strings.Fields("i am jack")
fmt.Println(field) //[i am jack]
//按照指定字符分割字符串,返回切片
split := strings.Split("hello,i am jack", ",")
fmt.Println(split) //[hello i am jack]
//按照指定字符分割字符串,分割至指定位置,返回切片
splitN := strings.SplitN("hello,i,am,jack", ",", 2)
fmt.Println(splitN) //[hello i,am,jack]
//不去掉,带着逗号分割
splitafter := strings.SplitAfter("hello,i,am,jack", ",")
fmt.Println(splitafter) //[hello, i, am, jack]
//将字符串切片合并成一个字符串,可以插入指定分隔符
join := strings.Join([]string{"I", "am", "jack"}, ",")
fmt.Println(join) //I.am.jack
//拼接字符串
var build strings.Builder
build.WriteString("abc")
build.WriteByte(65)
fmt.Println(build.String()) //abcA
}