GO-SDK标准库1:strings

概述

  • strings库定义了对字符串的常用处理操作
  • 常用的包括:检索子串、格式化、比较大小、裁剪、拼接、炸碎等
func main() {

    //判断是否包含子串
    fmt.Println(strings.Contains("Hello", "shit"))        //false
    fmt.Println(strings.Contains("Hello", "lo"))          //true
    fmt.Println(strings.ContainsAny("Hello shit", "ae"))  //true 因为包含ae中的e
    fmt.Println(strings.ContainsAny("Hello shit", "azx")) //false 母串中不包含azx中的任何一个字母
    fmt.Println(strings.ContainsRune("Hello", 'o'))       //true 判断是否包含某字符
    fmt.Println(strings.ContainsRune("Hello", 'x'))       //false

    //返回子串索引
    fmt.Println(strings.Index("Hello shit", "shit"))   //6
    fmt.Println(strings.Index("Hello shit", "shiter")) //-1

    //格式化
    fmt.Println(strings.Title("hello shit")) //Hello Shit  每个单词的首字母为【标题格式】
    fmt.Println(strings.ToTitle("ShIt"))     //SHIT 单词的每个字母为【标题格式】
    fmt.Println(strings.ToUpper("ShIt"))     //SHIT 全大写
    fmt.Println(strings.ToLower("ShIt"))     //shit 全小写

    //比较大小
    fmt.Println(strings.Compare("azzz", "zaaa")) //-1
    fmt.Println(strings.Compare("z", "a"))       //1
    fmt.Println(strings.Compare("a", "a"))       //0

    //裁剪
    fmt.Println(strings.Trim("   hello shit ", " ")) //hello shit 收尾的空白都没有了
    fmt.Println(strings.Trim("   hello shit .,", " ,"))
    //去除【头尾】的所有【逗号和空白】,【头尾】是由cutset中的字符连续排列的区域
    fmt.Println(strings.Trim(", ,,  ,hello shit       .,   ,  ,  ", ", "))
    fmt.Println(strings.TrimLeft(", ,,  ,hello shit       .,   ,  ,  ", ", "))  //左侧修剪的干干净净,右侧一屁股翔
    fmt.Println(strings.TrimRight(", ,,  ,hello shit       .,   ,  ,  ", ", ")) //右侧修剪的干干净净,左侧一屁股翔
    //最后一个参数func允许你自定义裁剪规则,返回true的将被视为可以裁剪的字符
    fmt.Println(strings.TrimFunc(", ,,  ,hello shit       .,   ,  ,  ", func(r rune) bool {
        if r == ' ' || r == ',' || r == '.' {
            return true
        }
        return false
    }))
    fmt.Println(strings.TrimPrefix("-hello shit       .,   ,  ,  -", "-")) //修剪前缀
    fmt.Println(strings.TrimSuffix("-hello shit       .,   ,  ,  -", "-")) //修剪前缀
    fmt.Println(strings.TrimSpace("  hello shit     "))

    //判断是否相等
    fmt.Println(strings.EqualFold("HelloShit", "heLLoSHIT")) //true 忽略大小写和标题的差异后,是否依然相同

    //炸碎
    fmt.Println(strings.Fields("hello shit eater"))          //[hello shit eater] 以空白为分隔符,将字符串炸开为子串的切片
    fmt.Println(strings.Fields("hello,shit eater,devourer")) //[hello,shit eater,devourer]
    //在func中自定义分隔符的规则
    fmt.Println(strings.FieldsFunc("hello,shit eater,devourer", func(r rune) bool {
        if r == ' ' || r == ',' {
            return true
        }
        return false
    })) //[hello shit eater devourer]

    //炸碎
    /*
    func Split(s, sep string) []string
    func SplitN(s, sep string, n int) []string
    func SplitAfter(s, sep string) []string
    func SplitAfterN(s, sep string, n int) []string
    */
    fmt.Println(strings.Split("hello,world,hello,shitEater",","))//[hello world hello shitEater]
    fmt.Println(strings.SplitN("hello,world,hello,shitEater",",",2))//[hello world,hello,shitEater]
    fmt.Println(strings.SplitAfter("hello,world,hello,shitEater",","))//[hello, world, hello, shitEater]
    fmt.Println(strings.SplitAfterN("hello,world,hello,shitEater",",",2))//[hello, world,hello,shitEater]

    //拼接
    fmt.Println(strings.Join([]string{"hello","world","hello","shitEater"},"$"))//hello$world$hello$shitEater

    fmt.Println()

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TR34ObjectIdentifers DEFINITIONS EXPLICIT TAGS ::= BEGIN -- Content types, from PKCS #7 -- pkcs7 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs7(7) } id-data OBJECT IDENTIFIER ::= { pkcs7 data(1) } id-signedData OBJECT IDENTIFIER ::= { pkcs7 signedData(2) } id-envelopedData OBJECT IDENTIFIER ::= { pkcs7 envelopedData (3) } id-digestedData OBJECT IDENTIFIER ::= { pkcs7 digestedData(5) } id-encryptedData OBJECT IDENTIFIER ::= { pkcs7 encryptedData (6) } pkcs9 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9) } smime OBJECT IDENTIFIER ::= { pkcs9 smime(16) } -- Signed attributes, from PKCS #9, S/MIME, and ANS X9.73 -- id-contentType OBJECT IDENTIFIER ::= { pkcs9 contentType(3) } id-messageDigest OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9) 4 } id-signingTime OBJECT IDENTIFIER ::= { pkcs9 signingTime(5) } id-contentIdentifier OBJECT IDENTIFIER ::= { smime id-aa(2) contentIdentifier(7) } id-msgSequenceNo OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) x973(10060) attribute(1) msgSequenceNo(1) } id-signingCertificate OBJECT IDENTIFIER ::= { smime id-aa(2) signingCertificate(12) } id-otherSigningCert OBJECT IDENTIFIER ::= { itu-t(0) identified-organization(4) etsi(0) electronic-signature-standard(1733) part1(1) attributes(1) 12 } id-biometricSyntax OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) x973(10060) attribute(1) biometricSyntax(2) } END 请理解这段代码,并使用openssl的接口,采用linux c编程完成对数据的编码和解码
06-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值