Golang Fields and FieldsFunc

Use the Fields and FieldsFunc methods to separate string parts with simple syntax.

Fields. A field is separated by one or more space characters. The Fields() method in the strings package separates these into an array. It splits on groups of spaces.Strings

A key advantage. With Fields, we treat many consecutive delimiter characters as one. So several spaces is the same as a single space. This is a key advantage of Fields over Split().Split

Fields example. Here is a basic example of Fields. Please notice how the words in the value string are separated by spaces, but two or spaces may be used to separate a word.
Golang program that uses Fields method package main import ( "fmt" "strings" ) func main() { value := "Cat Dog Bird Fish" result := strings.Fields(value) // Display all fields, first field and count. fmt.Println(result) fmt.Println(result[0]) fmt.Println(len(result)) } Output [Cat Dog Bird Fish] Cat 4

FieldsFunc. This method allows us to specify the field separator as a func. The fund must receive a rune and return a bool (whether the char is a separator).
Tip: With FieldsFunc, we get the same functionality as Fields() but are not restricted to using a space separator.
Golang program that uses FieldsFunc package main import ( "fmt" "strings" ) func main() { // Return true if comma or colon char. f := func(c rune) bool { return c == ',' || c == ':' } // Separate into fields with func. fields := strings.FieldsFunc("cat,dog:bird", f) fmt.Println(fields) } Output [cat dog bird]

A review. Fields() and FieldsFunc are helpful when parsing strings that use a single delimiter character (and perhaps several in a sequence). More complex delimiters cannot be used.

© 2007-2020 Sam Allen. Every person is special and unique. Send bug reports to info@dotnetperls.com.