Golang : Repeat a character by multiple of x factor
In Python, it is pretty easy to repeat some characters inside a string. All you need to do is to multiply the letter with an integer value and the letter will be multiplied/repeated by x number of times
For example:
str = ''.join(['a' * 1, 'b' * 1, 'c' * 2, 'd' * 3, 'e' * 2, 'f' * 4, \
'g' * 5, 'h' * 6, 'i' * 3, 'j' * 7, 'k' * 8, 'l' * 9, 'm' * 10, \
'n' * 11, 'o' * 4, 'p' * 12, 'q' * 13, 'r' * 14, 's' * 15, \
't' * 16, 'u' * 5, 'w' * 17, 'y' * 18, 'z' * 19])
will produce:
abccdddeeffffggggghhhhhhiiijjjjjjjkkkkkkkklllllllllmmmmmmmmmmnnnnnnnnnnnoo
ooppppppppppppqqqqqqqqqqqqqrrrrrrrrrrrrrrsssssssssssssssttttttttttttttttuuuuuw
wwwwwwwwwwwwwwwwyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzz
However, it is not permissible to multiply a letter with integer in Golang. Doing so will generate error such as invalid operation: "join" * 2 (mismatched types string and int)
.
To create multiple instances/repeatition of a letter in Golang, you will have to use the strings.Repeat()
function.
Example:
package main
import (
"fmt"
"strings"
)
func main() {
str := []string{"a", "b", "c", "d", "e"}
fmt.Println(strings.Join(str, " "))
// Python way of repeating string by multiple of x will
// not work here
//str2 := []string{"a" * 2, "b", "c", "d", "e"}
// Golang's way of multiplying a string by x factor
str2 := []string{strings.Repeat("a", 2), "b", "c", "d", "e"}
fmt.Println(strings.Join(str2, " "))
a2 := strings.Repeat("a", 2)
b3 := strings.Repeat("b", 3)
c4 := strings.Repeat("c", 4)
d5 := strings.Repeat("d", 5)
e9 := strings.Repeat("e", 9)
str3 := []string{a2, b3, c4, d5, e9}
fmt.Println(strings.Join(str3, " "))
}
Output:
a b c d e
aa b c d e
aa bbb cccc ddddd eeeeeeeee
References:
https://www.socketloop.com/tutorials/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.2k Golang : Dealing with postal or zip code example
+6.8k Golang : Configure Apache and NGINX to access your Go service example
+12.4k Golang : Reverse IP address for reverse DNS lookup example
+5k Linux/MacOSX : Search for files by filename and extension with find command
+37.6k Golang : How to read CSV file
+28.7k Golang : Generate random string
+9.6k Golang : Fix - does not implement sort.Interface (missing Len method)
+22.3k Golang : Check if element exist in map
+16.5k Golang : Get all upper case or lower case characters from string example
+10.8k Golang : Flush and close file created by os.Create and bufio.NewWriter example
+5.1k Golang : Selection sort example
+15.3k Golang : Gzip file example