golangで文字列をバイト配列(byte)に変換する方法

PHPz
リリース: 2023-03-22 14:32:37
オリジナル
4864 人が閲覧しました

Go 言語は、さまざまな分野、特にサーバーサイド開発で広く使用されている効率的なプログラミング言語です。中でも文字列処理は Go 言語の重要な部分です。この記事では、文字列をバイト配列(byte)、つまりgolangの文字列をバイトに変換する方法を紹介します。

  1. バイト配列とは何ですか?

Go 言語では、バイト配列 (byte) は一連の整数で構成される配列です。各整数は文字に対応し、この文字は ASCII コード テーブル内の整数に対応する文字によって表されます。したがって、バイト配列は文字エンコーディングで構成される配列とみなすことができ、さまざまな文字列処理シナリオで使用できます。

  1. 文字列をバイト配列に変換するメソッド

Go 言語には、文字列をバイト配列に変換する 2 つのメソッドが用意されています。1 つは型変換を実装する方法です。もう 1 つは標準ライブラリの関数を通じて実装されます。

(1) 型変換方法

Go言語におけるstringは文字列からなる不変型です。 Byte は、一連の整数で構成される変数タイプです。したがって、型変換を通じて文字列型をバイト型に変換できます。つまり、

str := "hello world"
bytes := []byte(str)
ログイン後にコピー

上記のコードでは、最初に文字列 str を定義し、次に を渡します。 [ ]byte(str) メソッドを使用してバイト配列 bytes に変換します。バイト配列は可変型であり、変更できることに注意してください。

(2) 関数の変換方法

Go 言語では、型変換以外にも、文字列をバイト配列に変換するための標準ライブラリ関数が多数提供されています。最も一般的に使用される関数は []byte 関数と string 関数で、それぞれ文字列をバイト配列に変換し、バイト配列を文字列に変換できます。

str := "hello world"
bytes := []byte(str)
str2 := string(bytes)
ログイン後にコピー

上記のコードでは、まず文字列 str をバイト配列 bytes に変換し、次に string(bytes) を渡します。バイト配列を文字列 str2 に変換します。この方法は ASCII エンコードでのみ機能するため、文字列に他のエンコード文字が含まれている場合、文字化けが発生する可能性があることに注意してください。

  1. 文字列とバイト配列の変換アプリケーション

文字列をバイト配列に変換することは、Go 言語の基本的な操作です。文字列とバイト配列間の変換に使用されますが、さまざまな文字列処理シナリオでも使用できます。いくつかの一般的なアプリケーション シナリオを見てみましょう:

(1) バイト配列の分割

バイト配列は、いくつかの整数で構成されるシーケンスとみなすことができます。したがって、バイト配列をトラバースすることで、バイト配列を複数の小さな配列に分割できます。

str := "hello"
bytes := []byte(str)
chunks := [][]byte{}
chunkSize := 2
for i := 0; i < len(bytes); i += chunkSize {
    end := i + chunkSize
    if end > len(bytes) {
        end = len(bytes)
    }
    chunk := bytes[i:end]
    chunks = append(chunks, chunk)
}
fmt.Println(chunks)
ログイン後にコピー

上記のコードでは、文字列 str とバイト配列bytes を定義します。次に、バイト配列 bytes をサイズ 2 の小さな配列に分割します。最後に、すべての小さな配列を 2D 配列 chunks に保存し、出力します。

(2) 圧縮文字列

文字列をバイト配列に圧縮して、圧縮効果を実現できます。圧縮の原理は、文字列内の同じ文字をカウント値と文字に置き換えることです。たとえば、文字列 aaabcc は、バイト配列 []byte{3, 97, 1, 98, 2, 99} に圧縮できます。これは、 が存在することを意味します。文字列 3 'a's、1 'b's、および 2 'c's。

str := "aaabcc"
outBytes := []byte{}
currentChar := str[0]
currentCount := 1
for i := 1; i < len(str); i++ {
    if str[i] == currentChar {
        currentCount += 1
    } else {
        outBytes = append(outBytes, byte(currentCount), byte(currentChar))
        currentChar = str[i]
        currentCount = 1
    }
}
outBytes = append(outBytes, byte(currentCount), byte(currentChar))
fmt.Println(outBytes)
ログイン後にコピー

上記のコードでは、文字列 str と空のバイト配列 outBytes を定義し、上記の圧縮アルゴリズムに従って文字列 を圧縮します。 str はバイト配列 outBytes に圧縮されます。最後に、圧縮されたバイト配列を出力します。

  1. 概要

Go 言語では、文字列をバイト配列に変換することは基本的な操作であり、さまざまな文字列処理で使用できます。シナリオ。この記事では、文字列をバイト配列に変換する 2 つの方法、型変換と関数変換を紹介しました。さらに、バイト配列の分割や文字列圧縮など、バイト配列のいくつかのアプリケーション シナリオも紹介しました。バイト配列は ASCII エンコードにのみ適しているため、文字列に他のエンコード文字が含まれている場合、文字化けが発生する可能性があることに注意してください。

以上がgolangで文字列をバイト配列(byte)に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート