JavaのgetBytes|基本的な使い方やStingとbyte配列の相互変換

JavaのString型の変数を扱う上で、byte型に変換が必要なことがあります。

この記事では、getBytesの使い方やString型とbyte型の変換方法について、以下の内容で解説していきます。

  • そもそもbyte型ってなに?
  • getBytesの使い方について知りたい
  • byte型のさまざまな変換方法について知りたい
  • 16進数文字列⇔byte配列の変換方法が知りたい

getBytesの基本的な使い方から変換方法までわかりやすく解説していますので、ぜひ参考にしてください。

Javaのbyte型とは

byte型とは1バイト(8ビット)のサイズの整数値を表します。

Javaのbyte型は符号付きで-128から127までです。文字列は文字の配列ですが、それぞれの文字は文字コードに従ってbyte型に変換することができます。

ですので、文字列はbyte型の配列に変換できますし、byte型の配列を文字列に変換することができます。

JavaのgetBytesとは

getBytesメソッドは、対象の文字列をバイトシーケンスにエンコード化して、結果をByte型の配列として返すメソッドです。

以下のように記述して使用します。

また、getBytesは引数に文字コードを指定することもできます。

文字コードはUTF-8、Shift-jis、ASCIIコードなども指定可能です。

文字コードについては、以下の記事で詳しく解説しています。

【Java入門】文字コードの確認・変換・指定する方法を解説!
更新日 : 2019年3月28日

getBytesの使い方

ここでは、getBytesメソッドを使用して、String型とByte型の相互変換の方法を説明します。

byte配列からStringへの変換

byte型からString型へ変換する場合は、String型のコンストラクタにbyte型の値を指定します。

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

実行結果:

サンプルではbyte型の配列を宣言してgetBytesメソッドでバイナリの文字列を設定し、Stringのコンストラクタの引数に設定したバイナリの文字列を指定しています。

また、getBytesメソッドは文字コードを指定することも可能です。文字コードの指定は、getBytesメソッドで引数に文字コードを指定します。

なお、StandardCharsetsクラスはJava7で追加され、文字コードを指定する際に使用します。

Stringからbyte配列への変換

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

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

実行結果:

サンプルではbyte型の配列を宣言してString型の変数に対して、getBytesメソッドを使用してByte型に変換しています。byte型の値は-128から127の10進数で表現するため、ループで配列の要素ごとに出力すると、実行結果のようになります。

また、getBytesメソッドはString→byte変換時にも文字コードを指定することが可能です。

byte型のさまざまな変換方法

byte型は、さまざまな方法で変換することができます。

byte型の変換方法については、以下の記事でも詳しく解説しています!

【Java】Stringとbyte配列の変換方法まとめ
更新日 : 2019年6月12日

16進数文字列⇔byte配列の変換

実際のシステム開発では、バイナリデータや文字列を16進数のデータに変換して、端末間でやりとりすることがあります。

byte、Stringを16進数に変換するには、2つの方法があります。

1つ目は、「Apache Commons Codec」のHexクラスを使用することで変換することができます。

「Apache Commons Codec」のライブラリは、以下のページからダウンロードできます。

http://commons.apache.org/proper/commons-codec/download_codec.cgi

2つ目は、DatatypeConverterクラスを利用する方法です。
このクラスを使うとライブラリを追加する必要はありません。

byte配列から16進数文字列への変換

byte型から16進数の文字列に変換する方法を、以下に記述します。

DatatypeConverterクラスを使います。

実行結果:

サンプルでは、バイト型配列にバイナリ文字列を設定し、DatatypeConverterクラスのprintHexBinaryメソッドを使用して、バイナリ文字列を指定しています。

16進数文字列からbyte配列への変換

16進数文字列からbyte型へ変換する方法を、以下に記述します。

実行結果:

サンプルでは、String型の16進数文字列を設定し、DatatypeConverterクラスのparseHexBinaryメソッドを使用して、引数に16進数文字列を指定しています。

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

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

【Java String】7つの基本的な使い方で文字列操作を理解しよう
更新日 : 2019年5月7日

まとめ

ここでは、getBytesメソッドを使用したString型byte型の相互変換の方法や、文字コード指定、16進数への変換方法などを説明しました。

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

LINEで送る
Pocket

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

cta_under_bnr

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

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

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

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

書いた人

ヤマシタ

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

おすすめコンテンツ

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

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