Java でバイト配列を文字列に、またはその逆に変換するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-09 05:19:02
オリジナル
668 人が閲覧しました

How can I convert byte arrays to strings and vice versa in Java?

バイト配列変換

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!