How to find the Indices of All Occurrences of Substring in Go - Step by Step Examples
How to find the Indices of All Occurrences of Substring in Go ?
Answer
To find the indices of all occurrences of a substring in Go, you can iterate through the string and use the strings.Index
function.
✐ Examples
1 Find Indices of All Occurrences of Substring in String
In this example,
- We import the
fmt
andstrings
packages. - We define a function named
findAllIndices
that takes two strings,str
andsubstr
, as parameters. - We initialize an empty slice of integers named
indices
to store the starting indices of each occurrence of the substring. - We use a loop to search for the substring within the string using the
strings.Index
function, starting from a given index. - Inside the loop, we append the found index to the
indices
slice and update the starting index for the next search to be after the current occurrence. - The loop continues until no more occurrences are found.
- We return the
indices
slice. - In the
main
function, we define a stringstr
and a substringsubstr
with specific values. - We call the
findAllIndices
function withstr
andsubstr
and store the result in the variableindices
. - Finally, we print the
indices
to standard output.
Go Program
package main
import (
"fmt"
"strings"
)
func findAllIndices(str, substr string) []int {
var indices []int
index := strings.Index(str, substr)
for index != -1 {
indices = append(indices, index)
index = strings.Index(str[index+len(substr):], substr)
if index != -1 {
index += indices[len(indices)-1] + len(substr)
}
}
return indices
}
func main() {
str := "Hello World, Hello Universe, Hello Go"
substr := "Hello"
indices := findAllIndices(str, substr)
fmt.Println("Indices of all occurrences:", indices)
}
Output
Indices of all occurrences: [0 13 29]
2 Find Indices of All Occurrences of Another Substring
In this example,
- We import the
fmt
andstrings
packages. - We use the same
findAllIndices
function to find all occurrences of a substring within a string. - In the
main
function, we define a different stringstr
and a different substringsubstr
with specific values. - We call the
findAllIndices
function withstr
andsubstr
and store the result in the variableindices
. - Finally, we print the
indices
to standard output.
Go Program
package main
import (
"fmt"
"strings"
)
func findAllIndices(str, substr string) []int {
var indices []int
index := strings.Index(str, substr)
for index != -1 {
indices = append(indices, index)
index = strings.Index(str[index+len(substr):], substr)
if index != -1 {
index += indices[len(indices)-1] + len(substr)
}
}
return indices
}
func main() {
str := "Go is great. Go is fast. Go is fun."
substr := "Go"
indices := findAllIndices(str, substr)
fmt.Println("Indices of all occurrences:", indices)
}
Output
Indices of all occurrences: [0 13 25]
Summary
In this tutorial, we learned How to find the Indices of All Occurrences of Substring in Go language with well detailed examples.
More Go Strings Tutorials
- How to Create an Empty String in Go ?
- How to get Length of String in Go ?
- How to get Character at Specific Index in String in Go ?
- How to get First Character in String in Go ?
- How to get Last Character in String in Go ?
- How to get First N Characters in String in Go ?
- How to get Last N Characters in String in Go ?
- How to get Substring after Specific Character in Go ?
- How to get Substring before Specific Character in Go ?
- How to get Substring between two Specific Characters in Go ?
- How to get Substring from Specific Index to End in Go ?
- How to Iterate over Characters in String in Go ?
- How to Iterate over Words in String in Go ?
- How to Check if String is Empty in Go ?
- How to Check if String contains only Alphabets in Go ?
- How to Check if String contains only Alphabets and Numbers in Go ?
- How to Check if String contains only Numeric Digits in Go ?
- How to Check if a String contains given Substring in Go ?
- How to Check if String contains specific Character in Go ?
- How to Check if String starts with Specific Prefix in Go ?
- How to Check if String ends with Specific Suffix in Go ?
- How to Append a String to another String in Go ?
- How to Append a Character to beginning of a String in Go ?
- How to Append a Character to end of a String in Go ?
- How to Concatenate Two Strings in Go ?
- How to Repeat a String N Times in Go ?
- How to Insert Character at Specific Index in String in Go ?
- How to Replace a Substring in String in Go ?
- How to Replace multiple Spaces with a Single Space in String in Go ?
- How to Replace Character at Specific Index in String in Go ?
- How to Replace All Occurrences of a Substring in a String in Go ?
- How to Replace a Substring in a String using Regular Expression in Go ?
- How to Split a String in Go ?
- How to Split a String by New Line in Go ?
- How to Split a String by Comma in Go ?
- How to Sort Characters in String in Go ?
- How to convert String to Lowercase in Go ?
- How to convert String to Uppercase in Go ?
- How to Trim a String in Go ?
- How to convert First Character in String to Uppercase in Go ?
- How to Reverse a String in Go ?
- How to Remove Character at specific Index in a String in Go ?
- How to Remove First Character in a String in Go ?
- How to Remove Last Character in a String in Go ?
- How to Remove first N Characters in a String in Go ?
- How to Remove last N Characters in a String in Go ?
- How to Remove specific Substring in Go ?
- How to Remove specific Character from a String in Go ?
- How to Remove All Whitespace Characters from a String in Go ?
- How to Remove Special Characters from a String in Go ?
- How to keep only Alphabets in a String in Go ?
- How to Convert Integer to String in Go ?
- How to Convert String to Integer in Go ?
- How to convert String to Float in Go ?
- How to convert Float to String in Go ?
- How to check if Two Strings are Equal in Go ?
- How to check if Two Strings are Equal ignoring case in Go ?
- How to Compare Two Strings in Go ?
- How to find the Characters in the First String that are not Present in the Second String in Go ?
- How to find the Index of Substring in Go ?
- How to find the Index of Last Occurrence of Substring in Go ?
- How to find the Indices of All Occurrences of Substring in Go ?
- How to get all the possible Substrings of a String in Go ?
- How to get all the possible K length Substrings in a String in Go ?