命令记不住

登陆

标准库 strings

标准库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
}

\

推荐阅读