• go strings 包


    go strings 包

    介绍

    标准库strings用于处理utf-8编码的字符串,字符串的操作,通过该标准库

    字符串比较-Compare

    func Compare(a,b string) int
    
    • 1
    • 若 a==b ,则返回0;若 a b ,则返回 1。
    • 字符串的比较方法是根据单个字符的ASCII编码。

    示例

    package main
    import (
    	"fmt"
    	"strings"
    )
     
    func main() {
    	var str1 string = "hello"
    	var str2 string = "world"
     
    	fmt.Println(strings.Compare(str1,str2)) // -1
    	fmt.Println(strings.Compare(str2,str1)) // 1
    	fmt.Println(strings.Compare(str1,str1)) // 0
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    检测字符串是否包含子串-Contains

    func Contains(s,substr string) bool
    
    • 1

    示例

    package main
    import (
    	"fmt"
    	"strings"
    )
     
    func main() {
    	fmt.Println(strings.Contains("lxx is nb","lxx")) // true
    	fmt.Println(strings.Contains("lxx is nb","pyy")) // false
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    大小写转换

    func ToUpper(substr string) string
    func ToLower(substr string) string
    func ToTitle(substr string) string //将字符修改为其Title格式,大部分字符的Title格式就是Upper格式,只有少数字符的Title格式是特殊字符
    
    • 1
    • 2
    • 3

    示例

    package main
     
    import (
    	"fmt"
    	"strings"
    )
     
    func main() {
    	var str1 string = "hello,lxx"
    	fmt.Println(strings.ToUpper(str1)) // HELLO, GOLANG
    	fmt.Println(strings.ToLower(str1)) // hello, golang
    	fmt.Println(strings.ToTitle(str1)) // HELLO, GOLANG
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    统计子字符串出现的次数

    func Count(str,substr string) int
    
    • 1

    示例

    package main
     
    import (
    	"fmt"
    	"strings"
    )
     
    func main() {
    	var str1 string = "lxx is Nb, lxx is big,lxx is handsome"
    	var str2 string = "lxx"
    	fmt.Println(strings.Count(str1,str2))  //3 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    判断字符串的前后缀

    func HasPrefix(str,substr string) bool
    func HasSuffix(str,substr string) bool
    
    • 1
    • 2

    示例

    package main
    
    import (
    	"fmt"
    	"strings"
    )
    
    func main() {
    	var str1 string = "lxx is handsome"
    	var str2 string = "l"
    	var str3 string = "lxx"
    	var str4 string = "lxxi"
    	fmt.Println(strings.HasPrefix(str1, str2)) // true
    	fmt.Println(strings.HasPrefix(str1, str3)) // ture
    	fmt.Println(strings.HasSuffix(str1, str4)) // false
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    分割和连接

    func Split(str,separator string) []string
    func Join(strs []string) string
    
    • 1
    • 2

    示例

    package main
    
    import (
    	"fmt"
    	"strings"
    )
    
    func main() {
    	var str1 string = "lxx is Nb,lxx is handsome"
    	fmt.Println(strings.Split(str1, ",")) // [lxx is Nb      lxx is handsome]
    	for _,v := range strings.Split(str1, ",") {
    		fmt.Println(v)
    	}
    	fmt.Println(strings.Join([]string{"lxx","is","NB"}, " ")) // lxx is NB
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    索引

    这个操作能获取指定字符首次出现的位置,通常用来判断子字符串在对应字符串中的位置。

    func Index(str,substr string) int
    
    • 1

    示例

    package main
    
    import (
    	"fmt"
    	"strings"
    )
    
    func main() {
    	var str1 string = "lxx is Nb"
    	fmt.Println(strings.Index(str1, "Nb")) // 7
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    清洗

    清洗操作可以将字符串两端的一些字符删掉,常用来删除字符串两端的空格。

    func Trim(s, cutset string) string
    func TrimLeft(s, cutset string) string
    func TrimRight(s, cutset string) string
    func TrimPrefix(s, prefix string) string
    func TrimSuffix(s, suffix string) string
    func TrimSpace(str string) string
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    示例

    package main
    
    import (
    	"fmt"
    	"strings"
    )
    
    func main() {
    	var str1 string = "   lxx is Nb  "
    	var str2 string = "***lxx is Nb***"
    	fmt.Println(strings.Trim(str1, " ")) // lxx is Nb
    	fmt.Println(strings.Trim(str2, "*")) //lxx is Nb
    	// 专门用来清除两端空格的函数
    	fmt.Println(strings.TrimSpace(str1)) // lxx is Nb
    	fmt.Println(strings.TrimRight(str1," ")) //    lxx is Nb
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    替换

    清洗操作只能完成首尾的空格或者指定字符的替换,要完成更为复杂的操作则要调用NewReplacer()函数。

    func Replace(s, old, new string, n int) string {}
    func NewReplacer(oldnew ...string) *Replacer 
    
    • 1
    • 2

    示例

    package main
    
    import (
    	"fmt"
    	"strings"
    )
    
    func main() {
    	var str1 string = "www.cnblogs.com/lxx/p/15996060.html"
    	newReplacer1 := strings.NewReplacer("/",":")
    	fmt.Println(newReplacer1.Replace(str1)) //www.cnblogs.com:lxx:p:15996060.html
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    Settings 笔记整理
    Python 中的内存泄漏问题
    Guava中这些Map的骚操作,让我的代码量减少了50%
    直播案例剖析:手机降频对直播声音体验的影响
    态势丨黑客侵扰加剧,靶场为网络安全架设“防御盾”
    全局Ceph节点宕机处理
    redis分布式锁的实现
    [JAVAee]spring-Bean对象的执行流程与生命周期
    6 Best Books on Kubernetes for Beginners in 2023
    自定义弹窗(含生成zxing二维码功能)看这一篇就够了
  • 原文地址:https://blog.csdn.net/qq_55752792/article/details/126283184