golang stringsパッケージ関数

8230 ワード

1、2つのutf-8符号化文字列(unicode大文字、小文字、タイトルの3つのフォーマット文字を同じと見なす)が同じかどうかを判断します.
	str1 := "String"
	str2 := "string"
	ok := strings.EqualFold(str1,str2)
	fmt.Printf(" str1 = %s , str2 = %s   %t 
",str1 ,str2,ok) str1 = "string" ok2 := strings.EqualFold(str1,str2) fmt.Printf(" str1 = %s , str2 = %s %t",str1 ,str2,ok2)

2、str 1に接頭辞文字列prefixがあるかどうかを判断する.大文字と小文字の区別に注意
	str1 := "string"
	prrfix := "st"
	prefix_ok := strings.HasPrefix(str1,prrfix)
	fmt.Printf(" %s   %s ,   %t  
",str1 ,prrfix ,prefix_ok) str1 = "string" prrfix = "St" prefix_ok = strings.HasPrefix(str1,prrfix) fmt.Printf(" %s %s , %t
",str1 ,prrfix ,prefix_ok) str1 = "String" prrfix = "st" prefix_ok = strings.HasPrefix(str1,prrfix) fmt.Printf(" %s %s , %t
",str1 ,prrfix ,prefix_ok) str1 = "string" prrfix = "t" prefix_ok = strings.HasPrefix(str1,prrfix) fmt.Printf(" %s %s , %t
",str1 ,prrfix ,prefix_ok)

3、str 3に接尾辞文字列suffixがあるかどうかを判断する.(大文字と小文字の区別に注意)
	str3 := "string"
	suffix := "ing"
	suffix_ok := strings.HasSuffix(str3,suffix)

	fmt.Printf("%s   %s ,   %t 
",str3,suffix,suffix_ok) str3 = "www.baidu.com" suffix = "mom" suffix_ok = strings.HasSuffix(str3,suffix) fmt.Printf("%s %s , %t
",str3,suffix,suffix_ok) str3 = "www.baidu.com" suffix = ".Com" suffix_ok = strings.HasSuffix(str3,suffix) fmt.Printf("%s %s , %t
",str3,suffix,suffix_ok)

4、文字列str 4にサブストリングsubstrが含まれているか否かを判断する.(大文字と小文字の区別に注意)
	str4 := "strings arr bool , int"
	substr := "int"
	substr_ok := strings.Contains(str4,substr)

	fmt.Printf(" %s , %s ,   %t
",str4,substr,substr_ok) str4 = "strings arr bool , int" substr = "Int" substr_ok = strings.Contains(str4,substr) fmt.Printf(" %s , %s , %t
",str4,substr,substr_ok) str4 = "strings arr bool , int" substr = "," substr_ok = strings.Contains(str4,substr) fmt.Printf(" %s , %s , %t
",str4,substr,substr_ok)

5、文字列str 5がutf-8符号値utf 8を含むか否かを判断するstr(runeタイプ=int 32).
	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
",str5,utf8_str,utf8_str_ok)

6、文字列str 6が文字列charsのいずれかの文字を含むか否かを判断する.
	str6 := "hello word"
	chars := "ab"

	chars_ok := strings.ContainsAny(str6,chars)

	fmt.Printf(" %s %s  ,   %t
",str6,chars,chars_ok) str6 = "hello word" chars = "H" chars_ok = strings.ContainsAny(str6,chars) fmt.Printf(" %s %s , %t
",str6,chars,chars_ok) str6 = "hello word" chars = " " chars_ok = strings.ContainsAny(str6,chars) fmt.Printf(" %s %s , %t
",str6,chars,chars_ok)

7、戻り文字列str 7に重複しないsepサブ列がいくつかある
	str7 := "hello word"
	sep := "l"

	number := strings.Count(str7,sep)

	fmt.Printf("  %s   %s  , :%s   %d  ",str7,sep,sep,number)

8、サブストリングstr 8文字列sep_sで最初に出現した位置は,存在しなければ−1を返す.
	str8 := "hello word"
	sep_s := "w"

	num := strings.Index(str8,sep_s)

	fmt.Printf("  %s   %s  ,   %d 
",str8,sep_s,num) str8 = "hello word" sep_s = "a" num = strings.Index(str8,sep_s) fmt.Printf(" %s %s , %d
",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 
",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
",c_str,str9,c_str_num)

10、unicodeコード値int 32_charがstr 10で初めて現れる位置は、存在しない場合は−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 
" ,int32_char,int32_char,int32_char_num)

11、str 11における最初の関数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 
",str11,strll_int32_char_ok)

12、サブストリングesp 12は、文字列str 12に最後に現れる位置であり、存在しない場合は−1を返す.
	str12 := "hello word"
	esp12 := "word"
	num12 := strings.LastIndex(str12,esp12)

	fmt.Printf("  %s   %s  ,  %d 
",esp12,str12,num12)

13、文字列chars 13のいずれかのutf-8符号値がstr 13で最後に現れた位置であり、存在しないかchars 13が空の文字列であれば-1を返す
	str13 := "hello word"
	chars13 := "wo"

	num13 := strings.LastIndexAny(str13,chars13)
	fmt.Printf("  %s  utf-8  %s  ,  %d",str13,chars13,num13)

14、str 14のうち最後の関数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
",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、str 20の前の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、str 21の前後のすべてのcutsetに含まれるutf-8コード値を削除した文字列を返す
	str21 := "Ahello wordA"
	cutset:= "A"
	cutset_ok := strings.Trim(str21,cutset)
	fmt.Printf("  %s   %s  utf-8  ,  %s 
",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に現れるsep 24を取り除くように分割し、最後まで分割し、生成したすべてのセグメントからなるスライスを返す(各sep 24は1回の切断を行い、2つのsep 24が隣接していても2回の切断を行う).sep 24が空の文字の場合、Splitはsをunicodeコード値ごとに1つの文字列に分割します.
	str24 := "hello word hello word "
	sep24 := " "
	arr24 := strings.Split(str24,sep24)

	fmt.Printf("  %s   %s   %v, %d 
",str24,sep24,reflect.TypeOf(arr24), len(arr24)) str24 = "helloAwordAhelloAwordA" sep24 = "A" arr24 = strings.Split(str24,sep24) fmt.Printf(" %s %s %v, %d
",str24,sep24,reflect.TypeOf(arr24), len(arr24))

25.一連の文字列を1つの文字列に接続し、sep 25で区切る.
	arr25 := []string{"www","baidu","com"}
	sep25 := "."
	str25 := strings.Join(arr25,sep25)

	fmt.Printf("  arr25 %v   %s   %s",arr25,sep25,str25)