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
+3.2k Golang : File system scanning
+12.9k Golang : Pipe output from one os.Exec(shell command) to another command
+6.6k Generate Random number with math/rand in Go
+1.9k Linux/MacOSX : How to symlink a file?
+6.2k Golang : Overwrite previous output with count down timer
+2.9k Fix sudo yum hang problem with no output or error messages
+2.5k Linux/MacOSX : Search for files by filename and extension with find command
+1.7k Facebook : How to place save to Facebook button on your website
+15.3k Golang : How to check if a connection to database is still alive ?
+1.5k Golang : How to find out similarity between two strings with Jaro-Winkler Distance?
+1.7k Golang : Check if a word is countable or not
+13.9k Golang : Read input from console line