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 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.