A string
has words. It contains a sentence, a paragraph. Words are separated with spaces. With a special func
we can extract the first words in the sentence.
By counting spaces, we can estimate the number of words. This is not perfect. Extra logic to handle hyphens and punctuation might be needed.
func
The firstWords
func
receives to arguments: a string
and a count. The count int
is the number of words in our result.
for
-loop to count spaces. We decrement the count by 1 (meaning one less word is remaining to be counted).package main import "fmt" func firstWords(value string, count int) string { // Loop over all indexes in the string. for i := range value { // If we encounter a space, reduce the count. if value[i] == ' ' { count -= 1 // When no more words required, return a substring. if count == 0 { return value[0:i] } } } // Return the entire string. return value } func main() { value := "there are many reasons" // Test our first words method. result1 := firstWords(value, 2) fmt.Println("[" + result1 + "]") result2 := firstWords(value, 3) fmt.Println(result2) result3 := firstWords(value, 100) fmt.Println(result3) }[there are] there are many there are many reasons
string
, notesIf you pass a large value to firstWords
, like 100, the entire string
is returned. The argument 0 may need to be special-cased depending on your requirements.
Each language has special syntax for them. In Go we use a slice of a string
. We can extract parts of strings, like the first several words, with this syntax.