Open In App

Different ways to concatenate two strings in Golang

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

In Go language, the string is an immutable chain of arbitrary bytes encoded with UTF-8 encoding. In Go strings, the process of adding two or more strings into a new single string is known as concatenation. The simplest way of concatenating two or more strings in the Go language is by using + operator. It is also known as a concatenation operator. 

Example: 

C




// Go program to illustrate
// how to concatenate strings
package main
 
import "fmt"
 
func main() {
 
    // Creating and initializing strings
    // using var keyword
    var str1 string
    str1 = "Welcome!"
 
    var str2 string
    str2 = "GeeksforGeeks"
 
    // Concatenating strings
    // Using + operator
    fmt.Println("New string 1: ", str1+str2)
 
    // Creating and initializing strings
    // Using shorthand declaration
    str3 := "Geeks"
    str4 := "Geeks"
 
    // Concatenating strings
    // Using + operator
    result := str3 + "for" + str4
 
    fmt.Println("New string 2: ", result)
 
}


Output:

New string 1:  Welcome!GeeksforGeeks
New string 2:  GeeksforGeeks

Other Methods for concatenating strings

  • Using bytes.Buffer: You can also create a string by concatenating the bytes of the strings using bytes.Buffer with WriteString() method. It is defined under bytes package. It prevents the generation of the unnecessary string object, means it doesn’t generate a new string like in + operator from two or more strings. Example: 

C




// Go program to illustrate how to concatenate strings
// Using bytes.Buffer with WriteString() function
package main
 
import (
    "bytes"
    "fmt"
)
 
func main() {
 
    // Creating and initializing strings
    // Using bytes.Buffer with
    // WriteString() function
    var b bytes.Buffer
     
    b.WriteString("G")
    b.WriteString("e")
    b.WriteString("e")
    b.WriteString("k")
    b.WriteString("s")
     
    fmt.Println("String: ", b.String())
 
    b.WriteString("f")
    b.WriteString("o")
    b.WriteString("r")
    b.WriteString("G")
    b.WriteString("e")
    b.WriteString("e")
    b.WriteString("k")
    b.WriteString("s")
     
    fmt.Println("String: ", b.String())
 
}


  • Output:
String:  Geeks
String:  GeeksforGeeks
  • Using Sprintf: In Go language, you can also concatenate string using Sprintf() method. Example: 

C




// Go program to illustrate how to concatenate strings
// Using Sprintf function
package main
 
import "fmt"
 
func main() {
 
    // Creating and initializing strings
    str1 := "Tutorial"
    str2 := "of"
    str3 := "Go"
    str4 := "Language"
 
    // Concatenating strings using
    // Sprintf() function
    result := fmt.Sprintf("%s%s%s%s", str1,
                          str2, str3, str4)
     
    fmt.Println(result)
}


  • Output:
TutorialofGoLanguage
  • Using += operator or String append: In Go strings, you are allowed to append a string using += operator. This operator adds a new or given string to the end of the specified string. Example: 

C




// Go program to illustrate how
// to concatenate strings
// Using += operator
package main
 
import "fmt"
 
func main() {
 
    // Creating and initializing strings
    str1 := "Welcome"
    str2 := "GeeksforGeeks"
 
    // Using += operator
    str1 += str2
    fmt.Println("String: ", str1)
 
    str1 += "This is the tutorial of Go language"
    fmt.Println("String: ", str1)
 
    str2 += "Portal"
    fmt.Println("String: ", str2)
 
}


  • Output:
String:  WelcomeGeeksforGeeks
String:  WelcomeGeeksforGeeksThis is the tutorial of Go language
String:  GeeksforGeeksPortal
  • Using Join() function: This function concatenates all the elements present in the slice of string into a single string. This function is available in string package. Syntax:
func Join(str []string, sep string) string
  • Here, str is the string from which we can concatenate elements and sep is the separator which is placed between the elements in the final string. Example: 

C




// Go program to illustrate how to
// concatenate all the elements
// present in the slice of the string
package main
 
import (
    "fmt"
    "strings"
)
 
func main() {
 
    // Creating and initializing slice of string
    myslice := []string{"Welcome", "To",
              "GeeksforGeeks", "Portal"}
 
    // Concatenating the elements
    // present in the slice
    // Using join() function
    result := strings.Join(myslice, "-")
    fmt.Println(result)
}


  • Output:
Welcome-To-GeeksforGeeks-Portal
  • Using strings.Builder: You can also create a string by concatenating the strings using strings.Builder with WriteString() method. It is defined under strings package. It uses less memory while concatenating strings and is a better way of concatenation. The function WriteString appends the contents of the string to a buffer and allows us to concatenate strings in a faster way. It prevents the generation of the unnecessary string object, means it doesn’t generate a new string like in + operator from two or more strings.

            Example:

Go




// Go program to illustrate how to concatenate strings
// Using strings.Builder with WriteString() function
 
package main
 
import (
    "fmt"
    "strings"
)
 
func main() {
 
    // Creating and initializing strings
    // Using strings.Builder with
    // WriteString() function
    var str strings.Builder
 
    str.WriteString("Welcome")
 
    fmt.Println("String: ", str.String())
 
    str.WriteString(" to")
    str.WriteString(" GeeksforGeeks!")
 
    fmt.Println("String: ", str.String())
 
}


Output:

String:  Welcome
String:  Welcome to GeeksforGeeks!


Last Updated : 08 Apr, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads