欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Go语言常用字符串处理方法实例汇总

程序员文章站 2023-02-16 22:20:41
本文实例汇总了go语言常用字符串处理方法。分享给大家供大家参考。具体如下: 复制代码 代码如下:package main import (   &...

本文实例汇总了go语言常用字符串处理方法。分享给大家供大家参考。具体如下:

复制代码 代码如下:
package main
import (
    "fmt"
    "strings"
    //"unicode/utf8"
)
func main() {
    fmt.println("查找子串是否在指定的字符串中")
    fmt.println(" contains 函数的用法")
    fmt.println(strings.contains("seafood", "foo")) //true
    fmt.println(strings.contains("seafood", "bar")) //false
    fmt.println(strings.contains("seafood", ""))    //true
    fmt.println(strings.contains("", ""))           //true 这里要特别注意
    fmt.println(strings.contains("我是中国人", "我"))     //true
    fmt.println("")
    fmt.println(" containsany 函数的用法")
    fmt.println(strings.containsany("team", "i"))        // false
    fmt.println(strings.containsany("failure", "u & i")) // true
    fmt.println(strings.containsany("foo", ""))          // false
    fmt.println(strings.containsany("", ""))             // false
    fmt.println("")
    fmt.println(" containsrune 函数的用法")
    fmt.println(strings.containsrune("我是中国", '我')) // true 注意第二个参数,用的是字符
    fmt.println("")
    fmt.println(" count 函数的用法")
    fmt.println(strings.count("cheese", "e")) // 3
    fmt.println(strings.count("five", ""))    // before & after each rune result: 5 , 源码中有实现
    fmt.println("")
    fmt.println(" equalfold 函数的用法")
    fmt.println(strings.equalfold("go", "go")) //大小写忽略
    fmt.println("")
    fmt.println(" fields 函数的用法")
    fmt.println("fields are: %q", strings.fields("  foo bar  baz   ")) //["foo" "bar" "baz"] 返回一个列表
    //相当于用函数做为参数,支持匿名函数
    for _, record := range []string{" aaa*1892*122", "aaa\taa\t", "124|939|22"} {
        fmt.println(strings.fieldsfunc(record, func(ch rune) bool {
            switch {
            case ch > '5':
                return true
            }
            return false
        }))
    }
    fmt.println("")
    fmt.println(" hasprefix 函数的用法")
    fmt.println(strings.hasprefix("nlt_abc", "nlt")) //前缀是以nlt开头的
    fmt.println("")
    fmt.println(" hassuffix 函数的用法")
    fmt.println(strings.hassuffix("nlt_abc", "abc")) //后缀是以nlt开头的
    fmt.println("")
    fmt.println(" index 函数的用法")
    fmt.println(strings.index("nlt_abc", "abc")) // 返回第一个匹配字符的位置,这里是4
    fmt.println(strings.index("nlt_abc", "aaa")) // 在存在返回 -1
    fmt.println(strings.index("我是中国人", "中"))     // 在存在返回 6
    fmt.println("")
    fmt.println(" indexany 函数的用法")
    fmt.println(strings.indexany("我是中国人", "中")) // 在存在返回 6
    fmt.println(strings.indexany("我是中国人", "和")) // 在存在返回 -1
    fmt.println("")
    fmt.println(" index 函数的用法")
    fmt.println(strings.indexrune("nlt_abc", 'b')) // 返回第一个匹配字符的位置,这里是4
    fmt.println(strings.indexrune("nlt_abc", 's')) // 在存在返回 -1
    fmt.println(strings.indexrune("我是中国人", '中'))   // 在存在返回 6
    fmt.println("")
    fmt.println(" join 函数的用法")
    s := []string{"foo", "bar", "baz"}
    fmt.println(strings.join(s, ", ")) // 返回字符串:foo, bar, baz
    fmt.println("")
    fmt.println(" lastindex 函数的用法")
    fmt.println(strings.lastindex("go gopher", "go")) // 3
    fmt.println("")
    fmt.println(" lastindexany 函数的用法")
    fmt.println(strings.lastindexany("go gopher", "go")) // 4
    fmt.println(strings.lastindexany("我是中国人", "中"))      // 6
    fmt.println("")
    fmt.println(" map 函数的用法")
    rot13 := func(r rune) rune {
        switch {
        case r >= 'a' && r <= 'z':
            return 'a' + (r-'a'+13)%26
        case r >= 'a' && r <= 'z':
            return 'a' + (r-'a'+13)%26
        }
        return r
    }
    fmt.println(strings.map(rot13, "'twas brillig and the slithy gopher..."))
    fmt.println("")
    fmt.println(" repeat 函数的用法")
    fmt.println("ba" + strings.repeat("na", 2)) //banana
    fmt.println("")
    fmt.println(" replace 函数的用法")
    fmt.println(strings.replace("oink oink oink", "k", "ky", 2))
    fmt.println(strings.replace("oink oink oink", "oink", "moo", -1))
    fmt.println("")
    fmt.println(" split 函数的用法")
    fmt.printf("%q\n", strings.split("a,b,c", ","))
    fmt.printf("%q\n", strings.split("a man a plan a canal panama", "a "))
    fmt.printf("%q\n", strings.split(" xyz ", ""))
    fmt.printf("%q\n", strings.split("", "bernardo o'higgins"))
    fmt.println("")
    fmt.println(" splitafter 函数的用法")
    fmt.printf("%q\n", strings.splitafter("/home/m_ta/src", "/")) //["/" "home/" "m_ta/" "src"]
    fmt.println("")
    fmt.println(" splitaftern 函数的用法")
    fmt.printf("%q\n", strings.splitaftern("/home/m_ta/src", "/", 2))  //["/" "home/m_ta/src"]
    fmt.printf("%q\n", strings.splitaftern("#home#m_ta#src", "#", -1)) //["/" "home/" "m_ta/" "src"]
    fmt.println("")
    fmt.println(" splitn 函数的用法")
    fmt.printf("%q\n", strings.splitn("/home/m_ta/src", "/", 1))
    fmt.printf("%q\n", strings.splitn("/home/m_ta/src", "/", 2))  //["/" "home/" "m_ta/" "src"]
    fmt.printf("%q\n", strings.splitn("/home/m_ta/src", "/", -1)) //["" "home" "m_ta" "src"]
    fmt.printf("%q\n", strings.splitn("home,m_ta,src", ",", 2))   //["/" "home/" "m_ta/" "src"]
    fmt.printf("%q\n", strings.splitn("#home#m_ta#src", "#", -1)) //["/" "home/" "m_ta/" "src"]
    fmt.println("")
    fmt.println(" title 函数的用法") //这个函数,还真不知道有什么用
    fmt.println(strings.title("her royal highness"))
    fmt.println("")
    fmt.println(" tolower 函数的用法")
    fmt.println(strings.tolower("gopher")) //gopher
    fmt.println("")
    fmt.println(" tolowerspecial 函数的用法")
    fmt.println("")
    fmt.println(" totitle 函数的用法")
    fmt.println(strings.totitle("loud noises"))
    fmt.println(strings.totitle("loud 中国"))
    fmt.println("")
    fmt.println(" replace 函数的用法")
    fmt.println(strings.replace("abaacedf", "a", "a", 2)) // abaacedf
    //第四个参数小于0,表示所有的都替换, 可以看下golang的文档
    fmt.println(strings.replace("abaacedf", "a", "a", -1)) // abaacedf
    fmt.println("")
    fmt.println(" toupper 函数的用法")
    fmt.println(strings.toupper("gopher")) //gopher
    fmt.println("")
    fmt.println(" trim  函数的用法")
    fmt.printf("[%q]", strings.trim(" !!! achtung !!! ", "! ")) // ["achtung"]
    fmt.println("")
    fmt.println(" trimleft 函数的用法")
    fmt.printf("[%q]", strings.trimleft(" !!! achtung !!! ", "! ")) // ["achtung !!! "]
    fmt.println("")
    fmt.println(" trimspace 函数的用法")
    fmt.println(strings.trimspace(" \t\n a lone gopher \n\t\r\n")) // a lone gopher
}

希望本文所述对大家的go语言程序设计有所帮助。