Golang で 2 つの文字列を連結するさまざまな方法
Go 言語では、文字列は UTF-8 エンコードでエンコードされた任意のバイトの不変のチェーンです。 Go 文字列では、2 つ以上の文字列を新しい 1 つの文字列に追加するプロセスは連結と呼ばれます。 Go 言語で 2 つ以上の文字列を連結する最も簡単な方法は、+ 演算子を使用することです。連結演算子とも呼ばれます。
例:
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 = 'techcodeview.com'> > // 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)> }> |
出力:
New string 1: Welcome!techcodeview.com New string 2: techcodeview.com
文字列を連結するその他の方法
- bytes.Buffer の使用: bytes.Buffer を使用して文字列のバイトを連結して文字列を作成することもできます。 WriteString() メソッド 。 bytes パッケージの下で定義されます。不要な文字列オブジェクトの生成を防ぎます。つまり、2 つ以上の文字列から + 演算子のような新しい文字列を生成しません。 例:
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())> }> |
- 出力:
String: Geeks String: techcodeview.com
- Sprintf の使用: Go 言語では、次を使用して文字列を連結することもできます。 スプリントフ() 方法。 例:
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)> }> |
- 出力:
TutorialofGoLanguage
- += 演算子または文字列追加の使用: Go 文字列では、次を使用して文字列を追加できます。 += 演算子 。この演算子は、新しい文字列または指定された文字列を、指定された文字列の末尾に追加します。 例:
C
// Go program to illustrate how> // to concatenate strings> // Using += operator> package main> import 'fmt'> func main() {> > // Creating and initializing strings> > str1 := 'Welcome'> > str2 := 'techcodeview.com'> > // 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)> }> |
- 出力:
String: Welcometechcodeview.com String: Welcometechcodeview.comThis is the tutorial of Go language String: techcodeview.comPortal
- Join() 関数の使用: この関数は、文字列のスライスに存在するすべての要素を 1 つの文字列に連結します。この関数は文字列パッケージで利用できます。 構文:
func Join(str []string, sep string) string
- ここ、 str は要素を連結できる文字列で、 sep は最終的な文字列の要素の間に配置される区切り文字です。 例:
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',> > 'techcodeview.com', 'Portal'}> > // Concatenating the elements> > // present in the slice> > // Using join() function> > result := strings.Join(myslice, '-')> > fmt.Println(result)> }> |
- 出力:
Welcome-To-techcodeview.com-Portal
- strings.Builder の使用: strings.Builder を使用して文字列を連結して文字列を作成することもできます。 WriteString() メソッド。 これは strings パッケージの下で定義されます。文字列を連結する際に使用するメモリの量が少なく、より良い連結方法です。関数 書き込み文字列 文字列の内容をバッファに追加し、より高速な方法で文字列を連結できるようにします。不要な文字列オブジェクトの生成を防ぎます。つまり、2 つ以上の文字列から + 演算子のような新しい文字列を生成しません。
例:
行く
// 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(> ' techcodeview.com!'> )> > fmt.Println(> 'String: '> , str.String())> }> |
出力:
String: Welcome String: Welcome to techcodeview.com!