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.
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().
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.
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))
}[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.
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)
}[cat dog bird]
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.
Dot Net Perls is a collection of pages with code examples, which are updated to stay current. Programming is an art, and it can be learned from examples.
Donate to this site to help offset the costs of running the server. Sites like this will cease to exist if there is no financial support for them.
Sam Allen is passionate about computer languages, and he maintains 100% of the material available on this website. He hopes it makes the world a nicer place.