Golang : Transform comma separated string to slice example
Got a request from a junior software developer from India. Her question is how to convert a given comma-separated string to slice or array in Golang.
For example:
from A,B,C,D
to [A B C D]
It is pretty common to encounter comma separated string in software development world. Below are two code examples on how to transform a comma-separated string to slice and back to a comma-separated string. To achieve this, use the strings.Fields()
and strings.Join()
functions. However, care must be taken to ensure that the comma in the input string must be removed first. Otherwise, the result will not be a slice that you can perform operations on properly.
Here you go!
package main
import (
"fmt"
"strings"
)
func main() {
str := "A,B,C,D"
fmt.Println(str)
// first, clean/remove the comma
cleaned := strings.Replace(str, ",", " ", -1)
// convert 'clened' comma separated string to slice
strSlice := strings.Fields(cleaned)
fmt.Println(strSlice)
//NOTE : If we don't clean/remove the comma from the string
// the resultant strSlice will look like a slice but....
// you won't be able to perform operation on it
// such as strSlice[:1]
fmt.Println(strSlice[:1]) // test if this is a SLICE or not
}
Output:
A,B,C,D
[A B C D]
[A]
and back to comma-separated string
package main
import (
"fmt"
"strings"
)
func main() {
strSlice := []string{"A", "B", "C", "D"}
fmt.Println(strSlice)
// convert slice back to comma-separated string
str := strings.Join(strSlice, ",")
fmt.Println(str)
}
Output:
Notice the square brackets and the comma?
[A B C D]
A,B,C,D
Happy coding!
References:
https://www.socketloop.com/tutorials/golang-how-to-join-strings
https://www.socketloop.com/tutorials/golang-convert-string-to-array-slice
See also : Golang : How to join strings?
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+6.5k Golang : Derive cryptographic key from passwords with Argon2
+27.9k Golang : Connect to database (MySQL/MariaDB) server
+34.3k Golang : Smarter Error Handling with strings.Contains()
+4.7k Golang : PGX CopyFrom to insert rows into Postgres database
+17.3k Golang : Clone with pointer and modify value
+29k Golang : Save map/struct to JSON or XML file
+20.8k Golang : Clean up null characters from input data
+7k Golang : How to fix html/template : "somefile" is undefined error?
+12.8k Golang : Calculate elapsed years or months since a date
+8.9k Golang : Write multiple lines or divide string into multiple lines
+3.1k Golang : Fix go-cron set time not working issue
+33.7k Golang : Proper way to set function argument default value