Go语言教程之边写边学:基础练习:常用字符串函数(2)

Golang提供了许多内置的字符串函数,它们有助于在处理字符串数据时执行多项操作。Golang字符串函数是核心的一部分。使用此功能无需安装,只需导入"strings"包即可。重要的Golang字符串函数列表如下:

 

HasPrefix函数:

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

func HasPrefix(s, prefix string) bool

示例代码:

package main

import (
  "fmt"
  "strings"
)

func main() {
  fmt.Println(strings.HasPrefix("Australia", "Aus"))
  fmt.Println(strings.HasPrefix("Australia", "aus"))
  fmt.Println(strings.HasPrefix("Australia", "Jap"))
  fmt.Println(strings.HasPrefix("Australia", ""))
}

输出:

true
false
false
true

 

HasSuffix函数:

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

func HasSuffix(s, prefix string) bool

示例代码:

package main

import (
  "fmt"
  "strings"
)

func main() {
  fmt.Println(strings.HasSuffix("Australia", "lia"))
  fmt.Println(strings.HasSuffix("Australia", "A"))
  fmt.Println(strings.HasSuffix("Australia", "LIA"))
  fmt.Println(strings.HasSuffix("123456", "456"))
  fmt.Println(strings.HasSuffix("Australia", ""))
}

输出:

true
false
false
true
true

 

Index函数:

Index函数允许在字符串中搜索特定文本。它只需匹配字符串中的特定文本即可工作。如果找到,则返回从0开始的特定位置。如果未找到,则返回 -1。

func Index(s, sep string) int

示例代码:

package main

import (
  "fmt"
  "strings"
)

func main() {
  fmt.Println(strings.Index("Australia", "Aus"))
  fmt.Println(strings.Index("Australia", "aus"))
  fmt.Println(strings.Index("Australia", "A"))
  fmt.Println(strings.Index("Australia", "a"))
  fmt.Println(strings.Index("Australia", "Jap"))
  fmt.Println(strings.Index("Japan-124", "-"))
  fmt.Println(strings.Index("Japan-124", ""))
}

输出:

0
-1
0
5
-1
5
0

 

IndexAny函数:

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

func IndexAny(s, chars string) int

示例代码:

package main

import (
  "fmt"
  "strings"
)

func main() {
  fmt.Println(strings.IndexAny("australia", "japan")) // 字母a下标fmt.Println(strings.IndexAny("japan", "pen")) // 字母p下标fmt.Println(strings.IndexAny("mobile", "one")) // 字母o下标fmt.Println(strings.IndexAny("123456789", "4")) // 数字4下标fmt.Println(strings.IndexAny("123456789", "0")) // 数字0下标
}

输出:

0
2
1
3
-1

 

IndexByte函数:

IndexByte函数返回字符串中字符的第一个实例的索引。如果找到,则返回从0开始的特定位置。如果未找到,则返回 -1。

func IndexByte(s string, c byte) int

示例代码:

package main

import (
  "fmt"
  "strings"
)

func main() {
  var s,t,u byte  
  t = 'l'
  fmt.Println(strings.IndexByte("australia",t))
  fmt.Println(strings.IndexByte("LONDON",t))
  fmt.Println(strings.IndexByte("JAPAN",t))
  
  s = 1
  fmt.Println(strings.IndexByte("5221-JAPAN",s))

  u = '1'
  fmt.Println(strings.IndexByte("5221-JAPAN",u))
}

输出:

6
-1
-1
-1
3

 

IndexRune函数:

IndexRune函数以字符串形式返回Unicode码位r的第一个实例的索引。如果找到,则返回从0开始的特定位置。如果未找到,则返回 -1。在下面的示例中,s,t和u变量类型声明为rune。

func IndexRune(s string, r rune) int

示例代码:

package main

import (
  "fmt"
  "strings"
)

func main() {
  var s,t,u rune
  t = 'l'
  fmt.Println(strings.IndexRune("australia",t))
  fmt.Println(strings.IndexRune("LONDON",t))
  fmt.Println(strings.IndexRune("JAPAN",t))
  
  s = 1
  fmt.Println(strings.IndexRune("5221-JAPAN",s))

  u = '1'
  fmt.Println(strings.IndexRune("5221-JAPAN",u))
}

输出:

6
-1
-1
-1
3