Java バイト配列を文字列に変換し、バイト配列に戻す
Java では、バイト配列を文字列に変換するのが一般的なタスクです。ただし、これには、バイト配列を文字列表現に変換してからバイト配列に戻すという 2 つの操作が必要であることを理解することが重要です。この記事は、このプロセスを明確にすることを目的としています。
バイト配列から文字列への変換
バイトの文字列表現を取得するには、Arrays.toString() メソッドがよく使用されます。配列。たとえば、値 [-47, 1, 16, 84, 2, 101, 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, 97]、Arrays.toString(data.toByteArray()) を呼び出すと次の結果が得られます:
[-47, 1, 16, 84, 2, 101, 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, 97]
この文字列表現は、ネットワーク経由で送信することも、データベースに保存することもできます。
文字列からバイト配列への変換
受信側で文字列表現を受け取る際には、バイト配列に変換し直す必要があります。これには、文字列の解析とバイト配列の再構築が含まれます。
これにアプローチする 1 つの方法は、「[-47, 1, 16, 84, 2, 101」のような文字列を受け取る byteValues() メソッドを使用することです。 、110、83、111、109、101、32、78、70、67、32、68、97、116、97]" と文字列の配列を返します:
[-47, 1, 16, 84, 2, 101, 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, 97]
この内の各要素配列はバイト値を表します。これをバイト配列に変換するには、ループを使用して文字列を反復処理し、文字列をバイトに解析して、新しいバイト配列に格納します。
コード例
次の Python スクリプトは、クライアントから受信したデータのサーバー側の処理を示しています。
response = "[-47, 1, 16, 84, 2, 101, 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, 97]" # Placeholder response from the client byte_values = response.substring(1, response.length() - 1).split(",") # Convert the string values to bytes bytes = bytearray([int(byte_value.strip()) for byte_value in byte_values]) # Send the bytes back to the client
注:
配列の場合は覚えておいてください。 toString() はバイト配列を文字列に変換します。元のデータ型情報は失われます。したがって、文字列をバイト配列に正しく変換するには、文字列を注意深く解析し、適切なメソッドを使用して手動でバイト配列を再構築する必要があります。
以上がJava バイト配列を文字列に変換して戻すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。