1、 判断两个utf-8编码字符串(将unicode大写、小写、标题三种格式字符视为相同)是否相同。
str1 := "String"
str2 := "string"
ok := strings.EqualFold(str1,str2)
fmt.Printf(" str1 = %s , str2 = %s 是否相等 %t \n",str1 ,str2,ok)
str1 = "string"
ok2 := strings.EqualFold(str1,str2)
fmt.Printf(" str1 = %s , str2 = %s 是否相等 %t",str1 ,str2,ok2)
2、 判断str1是否有前缀字符串prefix。 注意区分大小写
str1 := "string"
prrfix := "st"
prefix_ok := strings.HasPrefix(str1,prrfix)
fmt.Printf(" %s 前缀字符串是否是 %s , 结果 %t \n",str1 ,prrfix ,prefix_ok)
str1 = "string"
prrfix = "St"
prefix_ok = strings.HasPrefix(str1,prrfix)
fmt.Printf(" %s 前缀字符串是否是 %s , 结果 %t \n",str1 ,prrfix ,prefix_ok)
str1 = "String"
prrfix = "st"
prefix_ok = strings.HasPrefix(str1,prrfix)
fmt.Printf(" %s 前缀字符串是否是 %s , 结果 %t \n",str1 ,prrfix ,prefix_ok)
str1 = "string"
prrfix = "t"
prefix_ok = strings.HasPrefix(str1,prrfix)
fmt.Printf(" %s 前缀字符串是否是 %s , 结果 %t \n",str1 ,prrfix ,prefix_ok)
3、判断str3是否有后缀字符串suffix。 (注意区分大小写)
str3 := "string"
suffix := "ing"
suffix_ok := strings.HasSuffix(str3,suffix)
fmt.Printf("%s 是否有后缀字符串 %s , 结果 %t \n",str3,suffix,suffix_ok)
str3 = "www.baidu.com"
suffix = "mom"
suffix_ok = strings.HasSuffix(str3,suffix)
fmt.Printf("%s 是否有后缀字符串 %s , 结果 %t \n",str3,suffix,suffix_ok)
str3 = "www.baidu.com"
suffix = ".Com"
suffix_ok = strings.HasSuffix(str3,suffix)
fmt.Printf("%s 是否有后缀字符串 %s , 结果 %t \n",str3,suffix,suffix_ok)
4、判断字符串str4是否包含子串substr。(注意区分大小写)
str4 := "strings arr bool , int"
substr := "int"
substr_ok := strings.Contains(str4,substr)
fmt.Printf("字符串%s ,是否包含子串%s , 结果 %t\n",str4,substr,substr_ok)
str4 = "strings arr bool , int"
substr = "Int"
substr_ok = strings.Contains(str4,substr)
fmt.Printf("字符串%s ,是否包含子串%s , 结果 %t\n",str4,substr,substr_ok)
str4 = "strings arr bool , int"
substr = ","
substr_ok = strings.Contains(str4,substr)
fmt.Printf("字符串%s ,是否包含子串%s , 结果 %t\n",str4,substr,substr_ok)
5、判断字符串str5是否包含utf-8码值 utf8_str( rune 类型 = int32)。
str5 := "string hello word"
var utf8_str int32 = 115 // s utf8 码值 115
utf8_str_ok := strings.ContainsRune(str5,utf8_str)
fmt.Printf("判断字符串%s是否包含utf-8码值 %v , 结果 %t\n",str5,utf8_str,utf8_str_ok)
6、判断字符串str6是否包含字符串chars中的任一字符。
str6 := "hello word"
chars := "ab"
chars_ok := strings.ContainsAny(str6,chars)
fmt.Printf("判断字符串%s是否包含字符串%s中的任一字符 , 结果 %t\n",str6,chars,chars_ok)
str6 = "hello word"
chars = "H"
chars_ok = strings.ContainsAny(str6,chars)
fmt.Printf("判断字符串%s是否包含字符串%s中的任一字符 , 结果 %t\n",str6,chars,chars_ok)
str6 = "hello word"
chars = " "
chars_ok = strings.ContainsAny(str6,chars)
fmt.Printf("判断字符串%s是否包含字符串%s中的任一字符 , 结果 %t\n",str6,chars,chars_ok)
7、返回字符串str7中有几个不重复的sep子串
str7 := "hello word"
sep := "l"
number := strings.Count(str7,sep)
fmt.Printf("返回字符串 %s 中有几个不重复的 %s 子串,结果:%s 出现个 %d ",str7,sep,sep,number)
8、子串str8在字符串sep_s中第一次出现的位置,不存在则返回-1。
str8 := "hello word"
sep_s := "w"
num := strings.Index(str8,sep_s)
fmt.Printf("子串 %s 在字符串 %s 中第一次出现的位置,结果 %d \n",str8,sep_s,num)
str8 = "hello word"
sep_s = "a"
num = strings.Index(str8,sep_s)
fmt.Printf("子串 %s 在字符串 %s 中第一次出现的位置,结果 %d \n",str8,sep_s,num)
9、字符c在s中第一次出现的位置,不存在则返回-1
str9 := "hello word"
var c_str byte = 'A';
c_str_num := strings.IndexByte(str9,c_str)
fmt.Printf("字符 %s 在 %s 中第一次出现的位置,结果 %d \n",c_str,str9,c_str_num)
str9 = "hello word"
c_str = 'h';
c_str_num = strings.IndexByte(str9,c_str)
fmt.Printf("字符 %s 在 %s 中第一次出现的位置,结果 %d \n",c_str,str9,c_str_num)
10、unicode码值int32_char 在 str10 中第一次出现的位置,不存在则返回-1。
str10 := "hello words"
var int32_char int32 = 115 // s int32 对于 115
int32_char_num := strings.IndexRune(str10,int32_char)
fmt.Printf("unicode码值 %d 在 %s 中第一次出现的位置,结果 %d \n" ,int32_char,int32_char,int32_char_num)
11、 str11 中第一个满足函数f的位置i(该处的utf-8码值r满足f®==true),不存在则返回-1。
str11 := "hello words"
var str11_int32_char int32 = 115 // s int32 对于 115
strll_int32_char_ok := strings.IndexFunc(str11, func(r rune) bool {
if r == str11_int32_char{
return true
}
return false
})
fmt.Printf(" %s 中第一个满足函数f,结果 %d \n",str11,strll_int32_char_ok)
12、子串esp12 在字符串str12 中最后一次出现的位置,不存在则返回-1。
str12 := "hello word"
esp12 := "word"
num12 := strings.LastIndex(str12,esp12)
fmt.Printf("字符串 %s 在字符串 %s 中最后一次出现的位置,结果 %d \n",esp12,str12,num12)
13、字符串chars13中的任一utf-8码值在str13中最后一次出现的位置,如不存在或者chars13为空字符串则返回-1
str13 := "hello word"
chars13 := "wo"
num13 := strings.LastIndexAny(str13,chars13)
fmt.Printf("字符串 %s 中的任一utf-8码值在 %s 中最后一次出现的位置,结果 %d",str13,chars13,num13)
14、str14 中最后一个满足函数f的unicode码值的位置i,不存在则返回-1。
str14 := "hello word"
var str14_char int32 = 115 // s int32 对于 115
num14 := strings.LastIndexFunc(str14,func(r rune) bool {
if r == str14_char{
return true
}
return false
})
fmt.Printf(" %s 中最后一个满足函数f的unicode码值的位置i,结果 %d\n",str14,num14)
15、返回s中每个单词的首字母都改为标题格式的字符串拷贝。
str15 := "hello word"
str15 = strings.Title(str15)
fmt.Println(str15)
16、返回将所有字母都转为对应的小写版本的拷贝。
str16 := "HEllO WORD"
str16 = strings.ToLower(str16)
fmt.Println(str16)
17、返回将所有字母都转为对应的大写版本的拷贝。
str17 := "hello word "
str17 = strings.ToUpper(str17)
fmt.Println(str17)
18、返回将所有字母都转为对应的标题版本的拷贝。
str18 := "hello word"
str18 = strings.ToTitle(str18)
fmt.Println(str18)
19、返回count个s串联的字符串。
str19 := "hello word "
str19 = strings.Repeat(str19,5)
fmt.Println(str19)
20、返回将 str20 中前 n 个不重叠 old 子串都替换为 new 的新字符串,如果 n<0 会替换所有 old 子串。
str20 := "hello word golang golang golang"
old := "golang"
newstr := "golang_go"
str20 = strings.Replace(str20,old,newstr,1)
fmt.Println(str20)
21、返回将 str21 前后端所有 cutset 包含的utf-8码值都去掉的字符串
str21 := "Ahello wordA"
cutset:= "A"
cutset_ok := strings.Trim(str21,cutset)
fmt.Printf("返回将 %s 前后端所有 %s 包含的utf-8码值都去掉的字符串 ,结果 %s \n",str21,cutset,cutset_ok)
22、返回将s前后端所有空白都去掉的字符串。
str22 := " hello word "
str22_ok := strings.TrimSpace(str22)
fmt.Printf("返回将%s前后端所有空白都去掉的字符串, 结果:%s",str22,str22_ok)
23、返回将字符串按照空白(unicode.IsSpace确定,可以是一到多个连续的空白字符)分割的多个字符串。如果字符串全部是空白或者是空字符串的话,会返回空切片。
str23 := "hello word"
var arr []string
arr = strings.Fields(str23)
fmt.Println(reflect.TypeOf(arr),arr)
24、用去掉s中出现的sep24 的方式进行分割,会分割到结尾,并返回生成的所有片段组成的切片(每一个sep24 都会进行一次切割,即使两个sep24 相邻,也会进行两次切割)。如果sep24 为空字符,Split会将s切分成每一个unicode码值一个字符串。
str24 := "hello word hello word "
sep24 := " "
arr24 := strings.Split(str24,sep24)
fmt.Printf("字符串 %s 以 %s 分割成 %v,个数%d \n",str24,sep24,reflect.TypeOf(arr24), len(arr24))
str24 = "helloAwordAhelloAwordA"
sep24 = "A"
arr24 = strings.Split(str24,sep24)
fmt.Printf("字符串 %s 以 %s 分割成 %v,个数%d \n",str24,sep24,reflect.TypeOf(arr24), len(arr24))
25、将一系列字符串连接为一个字符串,之间用sep25 来分隔。
arr25 := []string{"www","baidu","com"}
sep25 := "."
str25 := strings.Join(arr25,sep25)
fmt.Printf("数组 arr25 %v 以 %s 链接成字符串 %s",arr25,sep25,str25)