
标准库strings
strings具备函数
- Contains
- Count
- Fields
- HasPrefix
- Index
- Join
| 函数 | 描述 |
|---|---|
| func Contains(s,substr string)bool | 检查字符串s中是否包含子串substr |
| func Split(s,sep string)[]string | 将字符串s根据分隔符sep拆分并生成子串的切片 |
| func Join(elems []string,sep string)string | 将字符串切片elems中的元素使用分隔符sep拼接成单个字符串 |
| func HasPrefix(s,prefix string)bool | 检查字符串s是否包含前缀prefix |
| func HasSuffix(s,suffix string)bool | 检查字符串s是否包含后缀suffix |
| func ToUpper(s string)string | 将字符串s的所有字符转成大写 |
| func ToLower(s string)string | 将字符串s的所有字符转成小写 |
| func Trim(s string,cutset string)string | 从字符串s首部和尾部清除所有包含在字符集cutset中的字符 |
| func TrimLeft(s string,cutset string)string | 从字符串s首部清除所有包含在字符集cutset中的字符 |
| func TrimRight(s string,cutset string)string | 从字符串s尾部清除所有包含在字符集cutset中的字符 |
| func TrimSpace(s string)string | 从字符串s首部和尾部清除所有空白字符 |
| func TrimPrefix(s,prefix string) | 清除字符串s中的前缀prefix |
| func TrimSuffix(s,suffix string) | 清除字符串s中的后缀prefix |
| func Replace(s,old,new string,n int)string | 将字符串s的前n个子串中 的old替换成子串new |
| func ReplaceAll(s,old,new string)string | 将字符串s的所有子串中的old替换成子串new |
| func EqualFold(s,t string)bool | 忽略大小写,比较两个子串是否正常 |
1.strings.Join
func main(){ fmt.Println(strings.Join(os.Args[1:]," ")) }
2.strings.Split
它将一个字符串分割为一个子串组成的slice,是Split前面介绍过的Join的反操作
func main() { counts := make(map[string]int) for _, filename := range os.Args[1:] { data, err := ioutil.ReadFile(filename) if err != nil { fmt.Fprintf(os.Stderr, "dup3:%v\n", err) continue } for _, line := range strings.Split(string(data), "\n") { counts[line]++ } } for line, n := range counts { if n > 1 { fmt.Printf("%d\t%v\n", n, line) } } }
3.string.LastIndex
移除路径部分和
.后缀func main() { str := "/home/administrator/.project/20..210312." result := basename(str) fmt.Println(result) } func basename(s string) string { slash := strings.LastIndex(s, "/") s = s[slash+1:] if dot := strings.LastIndex(s, "."); dot >= 0 { s = s[:dot] } return s }
\