バイト配列変換
Java には、バイト配列から文字列へ、またはその逆に変換するためのさまざまなメソッドが用意されています。この変換はデータの送信と操作にとって重要です。一般的なシナリオの 1 つは、ネットワーク経由でバイト データを送信し、受信側でそれを再構築することです。
バイト配列から文字列への変換
バイト配列を文字列に変換するには、 Arrays.toString() メソッドを使用できます。入力として配列を受け取り、角括弧で囲まれたその要素の文字列表現を返します。例:
byte[] data = new byte[] {4, 6, 8, 10}; String dataString = Arrays.toString(data); // prints [-44, 6, 8, 10]
文字列からバイト配列への変換
ただし、この文字列表現をバイト配列に直接変換して戻すことはできません。これを実現するには、文字列から個々のバイト値を解析する必要があります。 1 つの方法は、String.split() メソッドを使用してバイト値を分離し、Byte.parseByte() メソッドを使用してそれらを解析することです。
String response = "[-47, 1, 16, 84, 2, 101, 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, 97]"; String[] byteValues = response.substring(1, response.length() - 1).split(","); byte[] bytes = new byte[byteValues.length]; for (int i = 0, len = bytes.length; i < len; i++) { bytes[i] = Byte.parseByte(byteValues[i].trim()); }
代替ソリューション
あるいは、ByteBuffer クラスを使用して、バイト配列変換を効率的に実行できます。バイト配列からバッファを作成するための Wrap() や、バッファから基礎となるバイト配列を取得するための array() などのメソッドが提供されます。
byte[] data = new byte[] {4, 6, 8, 10}; ByteBuffer buffer = ByteBuffer.wrap(data); byte[] dataCopy = buffer.array(); // returns a copy of the original byte array
注: () メソッドを int、double、long などのプリミティブ配列で使用して、それらの要素の文字列表現を生成することもできます。ただし、プリミティブ型の配列に変換するには、言語固有で型によって異なる追加の解析メカニズムが必要です。
以上がJava でバイト配列を文字列に、またはその逆に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。