[转载]Go常用包系列—strings包

strings包

函数 说明
strings.HasPrefix(s, prefix string) bool 判断字符串s是否以prefix 开头
strings.HasSuffix(s, suffix string) bool 判断字符串是否以suffix结尾
strings.Contains(s, substr string) bool 判断字符串s是否包含substr
strings.Index(s, str string) int 判断子字符串在父字符串中第一次出现的位置
strings.LastIndex(s, str string) int 判断子字符串在父字符串中最后出现的位置
strings.IndexRune(s, r rune) int 判断ASCII编码的字符在父字符串中最后出现的位置
strings.Count(s, str string) int 计算字符串str在字符串s中出现的非重叠的次数
strings.Repeat(s, count int) string 重复count次字符串s并返回一个新的字符串
strings.ToLower(s) string 将字符串中的Unicode字符全部转换为相应小写字符
strings.ToUpper(s) string 将字符串中的Unicode字符全部转换为相应大写字符
strings.TrimSpace(s string) string 去除字符串两侧的空白字符
strings.Trim(s string, cutset string) string 去掉字符串两侧的cutset字符串中的任意字符 *
strings.TrimLeft(s string, cutset string) string 去掉字符串左侧的cutset字符串中的任意字符
strings.TrimRight(s string, cutset string) string 去掉字符串右侧的cutset字符串中的任意字符
strings.TrimPrefix(s string, cutset string) string 去掉字符串开头的cutset字符串
strings.TrimSuffix(s string, cutset string) string 去掉字符串结尾的cutset字符串
strings.Fields(s string) []string 以1个或多个空白字符分隔字符串s并返回slice
strings.Split(s string, sep string) []string 以sep分隔字符串s并返回slice
strings.Join(a []string, sep string) string 将元素类型为string的slice使用sep拼接返回一个字符串

例子:

1.package main
2.import (
3. "fmt"
4. "strings"
5.)
6.func main() {
7. /* strings 包使用 */
8. str := " This is an example of a string "
9. prefix := "T"
10. if strings.HasPrefix(str, prefix) {
11. fmt.Printf("the string '%s' have prefix %s\n", str, prefix)
12. }
13.
14.suffix := "g"
15. if strings.HasSuffix(str, suffix) {
16. fmt.Printf("the string '%s' have suffix %s\n", str, suffix)
17. }
18. substr := "example"
19. if strings.Contains(str, substr) {
20. fmt.Printf("the string '%s' contains '%s'\n", str, substr)
21. }
22. //Index返回字符串substr在字符串str中的第一个索引(-1表示字符串str不包含字符串substr),索引从0开始
23. pos := strings.Index(str, substr)
24. fmt.Printf("字符串 '%s' 在字符串 '%s' 中的位置是%d\n", substr, str, pos)
25. //Index返回字符串substr在字符串str中最后出现位置的索引(-1表示字符串str不包含字符串substr),索引从0开始
26. lastPos := strings.LastIndex(str, "a")
27. fmt.Printf("字符串 'a' 在字符串 '%s' 中最后出现的位置是%d\n", str, lastPos)
28. runePos := strings.IndexRune(str, 'a')
29. fmt.Printf("字符'a' 在字符串 '%s' 中出现的位置是%d\n", str, runePos)
30. count := strings.Count(str, "a")
31. fmt.Printf("the string 'a' has appeared %d times in '%s'\n", count, str)
32. repeatStr := "repeat string!"
33. repeatStr = strings.Repeat(repeatStr, 2)
34. fmt.Printf("重复后的字符串为'%s'\n", repeatStr)
35. upperStr := strings.ToUpper(str)
36. fmt.Printf("字符串大写:'%s'\n", upperStr)
37. lowerStr := strings.ToLower(upperStr)
38. fmt.Printf("字符串小写:'%s'\n", lowerStr)
39. newStr := strings.TrimSpace(str)
40. fmt.Printf("原始字符串为:'%s'\n", str)
41. fmt.Printf("去掉两边的空格后字符串为:'%s'\n", newStr)
42. cutset1 := "Ths"
43. s1 := "ThisisGThiss"
44. newStr1 := strings.Trim(s1, cutset1)
45. fmt.Printf("'%s'去掉两边的'%s'后字符串为:'%s'\n", s1, cutset1, newStr1)
46. //注意与strings.TrimPrefix的区别
47. s2 := "ThisisGThiss"
48. cutset2 := "This"
49. newStr2 := strings.TrimLeft(s2, cutset2)
50. fmt.Printf("'%s'去掉左边的'%s'后字符串为:'%s'\n", s2, cutset2, newStr2)
51. s4 := "ThisisGisThiss"
52. cutset4 := "This"
53. newStr4 := strings.TrimPrefix(s4, cutset4)
54. fmt.Printf("去掉'%s'的前缀'%s'后的字符串为:'%s'\n", s4, cutset4, newStr4)
55. //注意与strings.TrimSuffix的区别
56. newStr3 := strings.TrimRight(s2, cutset2)
57. fmt.Printf("'%s'去掉右边的'%s'后字符串为:'%s'\n", s2, cutset2, newStr3)
58. s5 := "ThisisGisThis"
59. cutset5 := "This"
60. newStr5 := strings.TrimSuffix(s5, cutset5)
61. fmt.Printf("去掉'%s'的后缀'%s'后的字符串为:'%s'\n", s5, cutset5, newStr5)
62. s6 := "sss,s s"
63. fmt.Printf("Fields are: %q\n", strings.Fields(s6))
64. fmt.Printf("Fields are: %q\n", strings.Split(s6, ","))
65. slice1 := strings.Split(s6, ",")
66. fmt.Printf("The string is: %q\n", strings.Join(slice1, "#"))
67.}