【Java】Stringとbyte配列の変換方法まとめ

JavaでString型とbyte型の型変換の方法を知りたい
SJISやASCIIなどの文字コードを指定して変換する方法が知りたい
char型とbyte型の変換方法も知りたい

JavaのStringはプログラミングをする上で使用頻度が高いクラスの一つです。Stringを扱う上で、文字列をbyte型に変換したり、byte配列を文字列に変換するいった対応が必要になることがあります。

そこで今回は、String型からbyte型への型変換の方法をわかりやすく解説します!

Stringとbyte配列の変換

ここでは、String型とbyte型の相互変換の方法を詳しく解説します。

byte→String変換

byte型からString型へ変換するためには、Stringクラスのコンストラクタを使用します。Stringのコンストラクタの引数にbyte型を指定することで、String型へ変換することができます。

以下にbyte型からString型へ変換する方法を記述します。

実行結果

サンプルではbyte型を宣言して値を設定し、String型を宣言してStringのコンストラクタに引数でbyte型の変数を指定しています。byte型からString型への型変換は、Stringのコンストラクタを使用することで、指定した型へ変換することが可能です。

String→byte変換

String型からbyte型へ変換するためには、getBytesメソッドを使用します。

以下にgetBytesメソッドを使用して、String型からbyte型へ変換する方法を記述します。

実行結果

サンプルではString型を宣言して値を設定し、byte型を宣言してgetBytesメソッドを使用してString型の値をbyte型に変換しています。

String型からbyte型変換時に、ループで回さずにbyte型配列sbyteをそのまま出力すると、”[[email protected]”と表示されてしまいます。正しく値を取得する場合は、ループでbyte型の配列の要素を1つずつ取り出す必要があります。

また、byte型(バイナリデータ)で表現できる値は10進数で-128から127までとなっていますが、バイナリデータを解析するときは10進数よりは16進数に変換したほうが、都合が良い場合もあります。

バイナリデータを16進数に変換する場合は、toHexStringメソッドを使用すれば簡単に変換できます。

サンプルプログラムのSystem.out.printlnの部分を以下のように変更します。

実行結果

文字コードを指定して変換する

String型⇔byte型変換時に、変換した文字列を異なるOS間でやり取りした場合、文字化けが発生する可能生もあります。

例えば、Windowsで変換した文字列をLinuxで出力した場合、文字コードがShift_JISのままでは文字化けして表示される可能性もあります。

そのような問題を防ぐため、getBytesメソッドには文字コードを指定して変換することが可能です。

以下に文字コードを指定した変換方法を記述します。

この例ではgetBytesメソッドに文字コード”UTF-8″を指定していますが、Shift_JISヘ変換する場合は”ISO-8859-1″を、ASCIIで変換する場合は”US-ASCII”を使用します。

charとbyte配列の変換

byte→char変換

byte型からchar型へ変換するためには、byte型の値をchar型へキャストすることで簡単に型変換ができます。

以下にキャストを使用しての変換方法を記述します。

実行結果

char→byte変換

char型からbyte型への変換は、String型のgetBytesメソッドを使用する必要があるため、まずchar型をString型に変換する必要があります。

以下にchar型からbyte型へ変換する方法を記述します。

実行結果

サンプルではchar型の値を宣言して値を設定し、valueOfメソッドを使用してString型に変換しています。

次にString型の変数に対してgetBytesメソッドを使用してbyte型の配列に変換しています。

Stringのさまざまな型変換

String型の型変換は、今回紹介したdouble型以外にもさまざまな型で変換することが可能です。Stringの型変換については以下の記事で詳しく説明しています!

Stringについてもっと詳しく知りたい方へ

Stringのさまざまな使い方については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

まとめ

String⇔byte型へ変換する基本的な方法や注意点文字コードを指定する方法などを説明しました。

Stringからbyte型変換は、さまざまな場面で使用することがあると思います。もし、Stringからのbyteへの型変換の方法を忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

ヤマシタ

エンジニア歴10年のフリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、200本以上の執筆経験があります。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説