zoukankan      html  css  js  c++  java
  • Go语言strings包基本操作

      1.字符串比较

        常用方法: strings.Compare(),strings.EqualFold()

    func main() {
    	a := "Hello"
    	b := "hello"
            // 用于比较两个字符串的大小,如果两个字符串相等,返回为 0。如果 a 小于 b ,返回 -1 ,反之返回 1 
    	fmt.Println(strings.Compare(a, b))   // -1
            // EqualFold 函数,计算 s 与 t 忽略字母大小写后是否相等        
    	fmt.Println(strings.EqualFold(a, b))  //true
    }
    

      2.判断是否存在某字符或字符串

        常用方法: strings.Contains()

    func main() {
    	a := "Hello"
    	b := "H"
    	c := "你好世界"
    	d := "世界"
    	fmt.Println(strings.Contains(a, b))  // true
    	fmt.Println(strings.Contains(c, d))  // true
    }
    

      3.判断某字符出现的次数

        常用方法: strings.Count(),当substr为空时,返回utf8.RuneCountInString(s) + 1

    func main() {
    	a := "Hello"
    	b := "H"
    	fmt.Println(strings.Count(a, b)) // 1
    	c := "世界"
    	d := []rune(c)
    	fmt.Println(len(d))  // 2
    	fmt.Println(utf8.RuneCountInString(c))  // 2
    	// 当substr为空时,返回utf8.RuneCountInString(s) + 1
    	fmt.Println(strings.Count(c, ""))  //3
    }
    

      4.字符串分割

        常用方法: strings.Fields(), strings.FieldsFunc(), strings.Split(), strings.SplitAfter(), strings.SplitN(), strings.SplitAfterN()

    func main() {
    	a := "how are you"
    	b := `你好 中国	世界
    			地球`
    	// strings.Fields()用一个或多个连续的空格分隔字符串,常见间隔符包括:'\t', '\n', '\v', '\f', '\r', ' ', U+0085 (NEL), U+00A0 (NBSP)
    	fmt.Println(strings.Fields(a)) // [how are you]
    	fmt.Println(strings.Fields(b)) // [你好 中国 世界 地球]
    
    	// strings.FieldsFunc(str, func)用Unicode代码点进行分隔:满足 f(c) 返回 true, 通过实现一个回调函数来指定分隔字符串str的字符
    	c := " 1bv 2bd 3mm "
    	fmt.Println(strings.FieldsFunc(c, unicode.IsDigit)) // [  bv  bd  mm ]
    
    	// strings.Split()
    	d := "how are you"
    	e := "hello"
    	fmt.Println(strings.Split(d, " ")) // [how are you]
    	// sep为空时,分成一个个utf-8字符
    	fmt.Println(strings.Split(e, "")) // [h e l l o]
    
    	// strings.SplitAfter() 会保留分割字符
    	f := "how,are,you"
    	fmt.Println(strings.SplitAfter(f, ",")) // [how, are, you]
    
    	// strings.SplitN() 第三个参数为0时返回空切片,小于0时返回所以子串,大于0时表示返回的切片中有几个元素
    	fmt.Println(strings.SplitN(f, ",", -1)) // [how are you]
    	fmt.Println(strings.SplitN(f, ",", 0))  // []
    	fmt.Println(strings.SplitN(f, ",", 2))  // [how are,you]
    	fmt.Println(strings.SplitN(f, ",", 5))  // [how are you]
    
    	// strings.SplitAfterN() 同SplitN()
    	fmt.Println(strings.SplitAfterN(f, ",", 2)) // [how, are,you]
    }
    

      5.判断字符串有某个前缀或者后缀

        常用方法: strings.HasPrefix(), strings.HasSuffix()

    func main() {
    	a := "golang"
    	fmt.Println(strings.HasPrefix(a, "go")) //true
    	fmt.Println(strings.HasSuffix(a, "go")) //false
    	fmt.Println(strings.HasSuffix(a, "ng")) //true
    }
    

      6.字符串拼接

        常用方法: strings.Join()

    func main() {
    	a := []string{"a", "b", "c"}
    	fmt.Println(strings.Join(a, "&")) //a&b&c
    }
    

      7.字符串替换

        常用方法: strings.Replace()

    func main() {
    	a := "abcd,世界"
    	fmt.Println(strings.Replace(a, "a", "A", -1)) //Abcd,世界
    	fmt.Println(strings.Replace(a, "世", "B", -1)) //abcd,B界
    }
    

      8.字符串大小写转换

        常用方法: strings.ToLower(), strings.ToUpper()

    func main() {
    	a := "abcd"
    	b := "ABCD"
    	fmt.Println(strings.ToUpper(a))  //ABCD
    	fmt.Println(strings.ToLower(b))  //abcd
    }
    

      9.字符串首字母大写

        常用方法: strings.Title(), strings.ToTitle()

    func main() {
    	a := "hello world"
    	fmt.Println(strings.Title(a)) // Hello World
    	fmt.Println(strings.ToTitle(a))  // HELLO WORLD
    }
    

      10.修剪

        常用方法: strings.Trim(), strings.TrimLeft(), strings.TrimRight(), strings.TrimSpace()

    func main() {
    	a := "ababab你好 cdaaa  a"
    	b := " abababHELLO   "
    
    	// Trim去除首尾符合cutset中任意字符的字符
    	fmt.Println(strings.Trim(a, "ab")) // 你好 cdaaa
    	// TrimLeft去除左侧满足条件的字符
    	fmt.Println(strings.TrimLeft(a, "ab")) //你好 cdaaa  a
    	//TrimRight去除右侧满足条件的字符
    	fmt.Println(strings.TrimRight(a, "a d")) // ababab你好 c
    	//TrimSpace去除收尾间隔符
    	fmt.Println(strings.TrimSpace(b)) //abababHELLO
    }
    

      11.多字符替换

        常用方法: strings.NewReplacer()

    func main() {
    	file, _ := os.Create("1.txt")
    	a := "<hello>,abc<w>321"
    
    	r := strings.NewReplacer("<", "^^", ">", "$$")
    	fmt.Println(r.Replace(a))     //^^hello$$,abc^^w$$321
    
    	_, _ = r.WriteString(file, a) //将替换结果直接写入文件
    }
    

      12.Builder类型

    func main() {
    	b := strings.Builder{}
    	b.WriteString("你好")
    	b.WriteString("世界")
    	fmt.Println(b.String())
    }
    

      

     
  • 相关阅读:
    python2将str类型与unicode类型字符串写入文件的编码问题
    正则表达式匹配邮箱
    python读取excel表格
    python正则匹配re.search与re.findall的区别
    python使用join提取列表类型中的数字字符串
    判断一个python字符串中是否包含中文字符
    wordstation中虚拟机关机hang住,无法正常关机
    网络中涉及到优先级的主设备会被抢占与非抢占。
    [转]一天一点学习Linux之Inode详解
    [转]理解Linux文件系统之inode(非ext格式)
  • 原文地址:https://www.cnblogs.com/wangtaobiu/p/15775613.html
Copyright © 2011-2022 走看看