golang strings 包 函数

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值