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.
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().
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]
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.
Dot Net Perls is a collection of tested code examples. Pages are continually updated to stay current, with code correctness a top priority.
Sam Allen is passionate about computer languages. In the past, his work has been recommended by Apple and Microsoft and he has studied computers at a selective university in the United States.