カテゴリ: Go言語 更新日: 2025/10/27

Go言語で文字列とバイトスライスを相互変換!初心者でもわかる方法

Go言語のバイトスライスと文字列の相互変換方法
Go言語のバイトスライスと文字列の相互変換方法

先生と生徒の会話形式で理解しよう

生徒

「Go言語で文字列をバイト単位で操作したいときはどうすればいいですか?」

先生

「文字列をbyteスライスに変換すると、バイト単位で細かく操作できます。その逆に、バイトスライスから文字列に戻すことも簡単にできます。」

生徒

「バイトスライスって何ですか?」

先生

byteは0から255までの数値を表す型で、文字列の中の文字は内部的にバイト列として保存されています。バイトスライスにすると、文字列を数字の配列のように扱えます。」

生徒

「なるほど!具体的にはどうやって変換するんですか?」

先生

「それでは、基本的な方法を見ていきましょう!」

1. 文字列をバイトスライスに変換する方法

1. 文字列をバイトスライスに変換する方法
1. 文字列をバイトスライスに変換する方法

Go言語では文字列を[]byte型にキャストすることで、簡単にバイトスライスに変換できます。これにより、文字列の内容をバイト単位で読み書きすることができます。


package main

import "fmt"

func main() {
    str := "Hello, Go!"
    b := []byte(str)
    fmt.Println(b)
}

[72 101 108 108 111 44 32 71 111 33]

出力を見ると、文字が対応するASCIIコードやUTF-8コードに変換されていることがわかります。例えば、'H'は72、'e'は101になります。

2. バイトスライスを文字列に変換する方法

2. バイトスライスを文字列に変換する方法
2. バイトスライスを文字列に変換する方法

逆に、バイトスライスから文字列を作りたい場合は、string()で簡単に変換できます。


package main

import "fmt"

func main() {
    b := []byte{72, 101, 108, 108, 111}
    str := string(b)
    fmt.Println(str)
}

Hello

このようにバイトスライスを文字列に戻すことで、任意のバイトデータを文字列として扱えます。

3. 日本語などのマルチバイト文字の注意点

3. 日本語などのマルチバイト文字の注意点
3. 日本語などのマルチバイト文字の注意点

日本語や絵文字など、1文字が複数バイトで表現される文字を扱う場合も、同じ方法で変換できます。ただし、バイトスライスを操作するときは、文字が途中で切れないように注意する必要があります。


package main

import "fmt"

func main() {
    str := "こんにちは"
    b := []byte(str)
    fmt.Println(b)
    fmt.Println(string(b))
}

[227 129 147 227 129 147 227 129 161 227 129 175 227 129 139]
こんにちは

このように、バイトスライスに変換しても、string()で元に戻すことができます。

4. バイトスライスを使った応用例

4. バイトスライスを使った応用例
4. バイトスライスを使った応用例

バイトスライスに変換することで、文字列の一部を置換したり、文字コードを直接操作することができます。


package main

import "fmt"

func main() {
    str := "Hello, Go!"
    b := []byte(str)
    b[7] = 'g' // 'G' を 'g' に変更
    fmt.Println(string(b))
}

Hello, go!

このように、文字列を直接書き換えることはできませんが、バイトスライスを介すると簡単に文字を変更できます。

5. パフォーマンスと使い分けのポイント

5. パフォーマンスと使い分けのポイント
5. パフォーマンスと使い分けのポイント

文字列とバイトスライスは相互変換が簡単ですが、大きなデータを頻繁に変換するとメモリの負荷が増えます。文字列の読み取りだけなら変換は不要ですが、文字列を編集する場合やバイト単位の処理が必要な場合は、バイトスライスを使うのが便利です。

関連記事:
カテゴリの一覧へ
新着記事
Go言語の関数でエラーハンドリングする基本的な方法
Go言語のスライス・マップ・配列をまとめて比較してみよう!初心者でもわかる使い分けの基本
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.3
Java&Spring記事人気No3
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!