packagemainimport ("fmt""strings")funcmain() {var str string="This is an example of a string" fmt.Printf("T/F? Does the string \"%s\" have prefix %s? ", str, "Th") fmt.Printf("%t\n", strings.HasPrefix(str, "Th"))}
输出:
T/F? Does the string "This is an example of a string" have prefix Th? true
这个例子同样演示了转义字符 \ 和格式化字符串的使用。
4.7.2 字符串包含关系
Contains 判断字符串 s 是否包含 substr:
strings.Contains(s, substr string) bool
4.7.3 判断子字符串或字符在父字符串中出现的位置(索引)
Index 返回字符串 str 在字符串 s 中的索引(str 的第一个字符的索引),-1 表示字符串 s 不包含字符串 str:
strings.Index(s, str string) int
LastIndex 返回字符串 str 在字符串 s 中最后出现位置的索引(str 的第一个字符的索引),-1 表示字符串 s 不包含字符串 str:
packagemainimport ("fmt""strings")funcmain() {var str string="Hi, I'm Marc, Hi." fmt.Printf("The position of \"Marc\" is: ") fmt.Printf("%d\n", strings.Index(str, "Marc")) fmt.Printf("The position of the first instance of \"Hi\" is: ") fmt.Printf("%d\n", strings.Index(str, "Hi")) fmt.Printf("The position of the last instance of \"Hi\" is: ") fmt.Printf("%d\n", strings.LastIndex(str, "Hi")) fmt.Printf("The position of \"Burger\" is: ") fmt.Printf("%d\n", strings.Index(str, "Burger"))}
输出:
The position of "Marc" is: 8
The position of the first instance of "Hi" is: 0
The position of the last instance of "Hi" is: 14
The position of "Burger" is: -1
4.7.4 字符串替换
Replace 用于将字符串 str 中的前 n 个字符串 old 替换为字符串 new,并返回一个新的字符串,如果 n = -1 则替换所有字符串 old 为字符串 new:
packagemainimport ("fmt""strings")funcmain() {var str string="Hello, how is it going, Hugo?"var manyG ="gggggggggg" fmt.Printf("Number of H's in %s is: ", str) fmt.Printf("%d\n", strings.Count(str, "H")) fmt.Printf("Number of double g's in %s is: ", manyG) fmt.Printf("%d\n", strings.Count(manyG, "gg"))}
输出:
Number of H's in Hello, how is it going, Hugo? is: 2
Number of double g’s in gggggggggg is: 5
packagemainimport ("fmt""strings")funcmain() { str :="The quick brown fox jumps over the lazy dog" sl := strings.Fields(str) fmt.Printf("Splitted in slice: %v\n", sl)for _, val :=range sl { fmt.Printf("%s - ", val) } fmt.Println() str2 :="GO1|The ABC of Go|25" sl2 := strings.Split(str2, "|") fmt.Printf("Splitted in slice: %v\n", sl2)for _, val :=range sl2 { fmt.Printf("%s - ", val) } fmt.Println() str3 := strings.Join(sl2,";") fmt.Printf("sl2 joined by ;: %s\n", str3)}
输出:
Splitted in slice: [The quick brown fox jumps over the lazy dog]
The - quick - brown - fox - jumps - over - the - lazy - dog -
Splitted in slice: [GO1 The ABC of Go 25]
GO1 - The ABC of Go - 25 -
sl2 joined by ;: GO1;The ABC of Go;25
packagemainimport ("fmt""strconv")funcmain() {var orig string="666"var an intvar newS string fmt.Printf("The size of ints is: %d\n", strconv.IntSize) an, _ = strconv.Atoi(orig) fmt.Printf("The integer is: %d\n", an) an = an +5 newS = strconv.Itoa(an) fmt.Printf("The new string is: %s\n", newS)}
输出:
64 位系统:
The size of ints is: 64
32 位系统:
The size of ints is: 32
The integer is: 666
The new string is: 671