Golang strings.FieldsFunc()函数进行编程示例

Golang strings.FieldsFunc()函数进行编程示例

strings.FieldsFunc()函数 在Golang中,此函数用于在满足f(c)的Unicode代码点c的每次运行时将给定字符串str拆分,并返回str的切片数组。

语法:

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

在这里, str 是给定的字符串,rune是一个内置类型,用于包含单个Unicode字符,f是用户定义的函数。

返回值: 如果str中的所有代码点都满足f(c),或者字符串为空,则返回空切片。

注意: 此函数不保证调用f(c)的顺序。如果f对于给定的c不返回一致的结果,则FieldsFunc可能会崩溃。

示例1:

// Golang程序说明
// strings.FieldsFunc()函数
  
package main
  
import (
    "fmt"
    "strings"
    "unicode"
)
  
func main() {
  
    // f是一个函数,如果c为数字则返回true,否则返回false
    f := func(c rune) bool {
        return unicode.IsNumber(c)
    }
  
    // FieldsFunc()函数按照函数f的返回值拆分传递的字符串
    // 因此,字符串在遇到数字时会被拆分,然后返回所有非数字
    fmt.Printf("Fields are: %q\n", 
       strings.FieldsFunc("ABC123PQR456XYZ789", f))
} 

输出:

Fields are: ["ABC" "PQR" "XYZ"]

示例2:

// Golang程序说明
// strings.FieldsFunc()函数
package main
  
import (
    "fmt"
    "strings"
    "unicode"
)
  
func main() {
  
    // f是一个函数,如果c为空格或句点则返回true,否则返回false
    f := func(c rune) bool {
        return unicode.IsSpace(c) || c == '.'
    }
  
    // 我们也可以间接传递一个字符串
    // 遇到空格或句点时拆分字符串并返回所有非数字
    s := "We are humans. We are social animals."
    fmt.Printf("Fields are: %q\n", strings.FieldsFunc(s,f))
} 

输出:

Fields are: ["We" "are" "humans" "We" "are" "social" "animals"]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程