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
}
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语言程序设计有所帮助。