文字列操作

created byTakuya Ueda. Licensed under the Creative Commons 3.0 Attributions license.

んにちはnasustです。 今回は文字列操作について解説します。

文字列とは

Go言語 / golangの文字列は、バッククォート ` またはダブルクォート “ に囲まれた文字シーケンスです。 バッククォート ` とダブルクォート “ の違いは以下の通りです。

バッククォート ` : バッククォート以外の文字列を記述できます。バッククォート内で何も解釈されません。\r\nなど、そのままの文字列として扱われます。改行コードを含めることが出来ます。

ダブルクォート “ :\r\nなどのエスケープを解釈します。8進数\nnn、16進数\xnnの文字のエスケープしたバイトを記述することが出来ます。

str := "abcdefg"
go

ソースコードで上記のう様に記述した場合は、string型の変数に文字列が格納されます。string型はbyteのスライスのように振る舞いますが不変です。文字列の長さはlen関数で調べることができます。注意なのはbyte数なので文字数を調べる場合は、utf8パッケージのRuneCountInStringを使用します。

文字列の結合

strA := "abcd"
strB := "efgh"

strAB := strA + strB
go

または

var strAB string

strA := "abcd"
strB := "efgh"

strAB += strA
strAB += strB
go

+または+=で文字列の結合できます。しかし注意点はstring型が不変で固定長であることです。演算子を使用した結合では、結合毎に新しいstring型を作っているので負荷が掛かります。結合を沢山行う場合はbyteのスライスで行った方がパフォーマンスは良いです。

文字列の操作

文字列操作を行うにはstringsパッケージを使用します。 このパッケージでは、比較やSplitなど操作できる関数があります。

prevnext