您现在的位置是:网站首页> 编程资料编程资料

Golang字符串常用函数的使用_Golang_

2023-05-26 419人已围观

简介 Golang字符串常用函数的使用_Golang_

Golang提供了许多内置的字符串函数,这些函数可在处理字符串数据时帮助执行一些操作。Golang字符串函数是核心部分。使用此功能无需安装,仅需要导入“字符串”包。重要的Golang字符串函数列表如下:

1)Golang字符串包含功能[区分大小写]

您可以使用Contains()在字符串中搜索特定的文本/字符串/字符。它返回true或false的输出。如果在字符串2中找到字符串1,则返回true。如果在字符串2中找不到字符串1,则返回false。

语法:

 func Contains(s, substr string) bool 

DEMO

 package main import ( "fmt" "strings" ) func main() { fmt.Println(strings.Contains("我是中国人", "中国")) //true fmt.Println(strings.Contains("I like golang", "like")) //true fmt.Println(strings.Contains("www.topgoer.com", "topgoer")) //true fmt.Println(strings.Contains("www.TopgoEr.com", "topgoer")) //false fmt.Println(strings.Contains("www.TopgoEr com", " ")) //true }

输出结果
true
true
true
false
true

2)Golang ContainsAny()[区分大小写]

您可以使用ContainsAny()在字符串中搜索特定的文本/字符串/字符。它返回true或false的输出。如果在字符串中找到字符的unicode,则它返回true,否则输出将为false。您可以在下面的程序中看到ContainsAny与Contains的比较。

句法:

 func ContainsAny(s,chars string)bool 

DEMO

 package main import ( "fmt" "strings" ) func main() { fmt.Println(strings.ContainsAny("Golang", "g")) //true fmt.Println(strings.ContainsAny("Golang", "l & a")) //true fmt.Println(strings.ContainsAny("GolAng", "a")) // false fmt.Println(strings.ContainsAny("Golang", "G")) //true fmt.Println(strings.ContainsAny("GOLANG", "GOLANG")) //true fmt.Println(strings.ContainsAny("GOLANG", "golang")) // false fmt.Println(strings.ContainsAny("Shell-12541", "1")) //true // Contains vs ContainsAny fmt.Println(strings.ContainsAny("Shell-12541", "1-2")) // true fmt.Println(strings.Contains("Shell-12541", "1-2")) // false }

输出结果
true
true
false
true
true
false
true
true
false

3)Golang Count() [区分大小写]

此函数计算字符串中字符/字符串/文本的不重叠实例的数量。

语法:

 func Count(s,sep string)int 

DEMO

 package main import ( "fmt" "strings" ) func main() { fmt.Println(strings.Count("topgoer", "t")) //1 fmt.Println(strings.Count("Topgoer", "T")) //1 fmt.Println(strings.Count("Topgoer", "M")) //0 fmt.Println(strings.Count("Topgoer", "goer")) // 1 fmt.Println(strings.Count("Topgoer", "wwwTopgoercom")) // 0 fmt.Println(strings.Count("Shell-25152", "-25")) //1 fmt.Println(strings.Count("Shell-25152", "-21")) //0 fmt.Println(strings.Count("test", "")) // length of string + 1 5 fmt.Println(strings.Count("test", " ")) //0 }

输出结果
1
1
0
1
0
1
0
5
0

4)Golang EqualFold() [不区分大小写]

使用EqualFold,您可以检查两个字符串是否相等。如果两个字符串相等,则返回输出true,如果两个字符串都不相等,则返回false。

语法

 func EqualFold(s,t string)bool 

DEMO

 package main import ( "fmt" "strings" ) func main() { fmt.Println(strings.EqualFold("Topgoer", "TOPGOER")) //true fmt.Println(strings.EqualFold("Topgoer", "topgoer")) //true fmt.Println(strings.EqualFold("Topgoer", "Topgoercom")) //false fmt.Println(strings.EqualFold("Topgoer", "goer")) //false fmt.Println(strings.EqualFold("Topgoer", "Topgoer & goer")) //false fmt.Println(strings.EqualFold("Topgoer-1254", "topgoer-1254")) //true fmt.Println(strings.EqualFold(" ", " ")) // single space both side //true fmt.Println(strings.EqualFold(" ", " ")) // double space right side //false }

输出结果
true
true
false
false
false
true
true
false

5) Golang Fields()

Fields函数将一个或多个连续空白字符的每个实例周围的字符串分解为一个数组。

语法

 func Fields(s string) []string 

DEMO

 package main import ( "fmt" "strings" ) func main() { testString := "I love my country" testArray := strings.Fields(testString) for _, v := range testArray { fmt.Println(v) } }

输出结果
I
love
my
country

6)Golang FieldsFunc()

FieldsFunc函数在每次运行满足f(c)的Unicode代码点c时都将字符串s断开,并返回s的切片数组。您可以使用此功能按数字或特殊字符的每个点分割字符串。检查以下两个FieldsFunc示例:

语法

 func FieldsFunc(s string,f func(rune bool)[] string 

DEMO

 package main import ( "fmt" "strings" "unicode" ) func main() { x := func(c rune) bool { return !unicode.IsLetter(c) } strArray := strings.FieldsFunc(`I love my country – I,love?my!country I, love, my – country`,x) for _, v := range strArray { fmt.Println(v) } fmt.Println("\n*****************Split by number*******************\n") y := func(c rune) bool { return unicode.IsNumber(c) } testArray := strings.FieldsFunc(`1 I love my country.2 I love my,country.3 I-love my country.4 I love my?country`,y) for _, w := range testArray { fmt.Println(w) } }

输出结果
I
love
my
country
I
love
my
country
I
love
my
country

*****************Split by number*******************

 I love my country.
 I love my,country.
 I-love my country.
 I love my?country

7)Golang HasPrefix()

HasPrefix函数检查字符串s是否以指定的字符串开头。如果字符串S以前缀字符串开头,则返回true,否则返回false。

语法

 func HasPrefix(s, prefix string) bool 

DEMO

 package main import ( "fmt" "strings" ) func main() { fmt.Println(strings.HasPrefix("Topgoer", "Top")) //true fmt.Println(strings.HasPrefix("Topgoer", "top")) //false fmt.Println(strings.HasPrefix("Topgoer", "ccc")) //false fmt.Println(strings.HasPrefix("Topgoer", "")) //true }

输出结果
true
false
false
true

8)Golang HasSuffix()

HasSuffix函数检查字符串s是否以指定的字符串结尾。如果字符串S以后缀字符串结尾,则返回true,否则返回false。

语法

 func HasSuffix(s, prefix string) bool 

DEMO

 package main import ( "fmt" "strings" ) func main() { fmt.Println(strings.HasSuffix("Topgoer", "goer")) //true fmt.Println(strings.HasSuffix("Topgoer", "R")) //false fmt.Println(strings.HasSuffix("Topgoer", "GOER")) //false fmt.Println(strings.HasSuffix("123456", "456")) //true fmt.Println(strings.HasSuffix("Topgoer", "")) //true } 

输出结果
true
false
false
true
true

9)Golang Index()

Index功能可以搜索字符串中的特定文本。它仅通过匹配字符串中的特定文本即可工作。如果找到,则返回以0开头的特定位置。如果找不到,则返回-1。

语法

 func Index(s, sep string) int 

DEMO

 package main import ( "fmt" "strings" ) func main() { fmt.Println(strings.Index("Topgoer", "goer")) //true fmt.Println(strings.Index("Topgoer", "R")) //false fmt.Println(strings.Index("Topgoer", "GOER")) //false fmt.Println(strings.Index("123-456", "-")) //true fmt.Println(strings.Index("Topgoer", "")) //true } 

输出结果
3
-1
-1
3
0

10)Golang IndexAny()

IndexAny函数从string [left]中的chars [right]返回任何Unicode代码点的第一个实例的索引。它仅通过匹配字符串中的特定文本即可工作。如果找到,则返回以0开头的特定位置。如果找不到,则返回-1。

语法:

 func IndexAny(s,chars string)int 

DEMO<

-六神源码网