Javaで文字列をString型からbyte型へ変換する方法を現役エンジニアが解説【初心者向け】
初心者向けにJavaで文字列をString型からbyte型へ変換する方法について解説しています。最初にbyte型とはどういったデータ型であるのかを学習します。次にgetBytes()メソッドを使って、実際に文字列をString型からbyte型へ変換してみましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Javaで文字列をString型からbyte型へ変換する方法について解説します。実際にプログラムを書いて説明しているので、ぜひ理解しておきましょう。
そもそもJavaについてよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプJava講座の内容をもとに作成しています。
今回は、Javaに関する内容だね!
どういう内容でしょうか?
文字列をString型からbyte型へ変換する方法について詳しく説明していくね!
お願いします!
byte型とは
byte型はプリミティブ型のひとつで、8ビットまでの値を格納することができます。1ビットは0または1の為、1byteでは00000000から11111111までのビット配列をを表現することができます。このビット配列を単純に2進数で考得直すと0から255までとなりますが、
byte型は符号つきで負の値もとる為、とり得る数値の範囲は -128 から 127 までです。画像ファイルや、音声ファイル、文字列も内部はbyteの集合体です。その為byte型変数を単体で扱うよりも、byteを配列としてバイナリデータ(2進化されたデータ)の集まりとして利用されることが多いです。
文字列をString型からbyte型へ変換する方法
Stringクラスが保有するgetBytes()メソッドを利用します。getBytes()メソッドは文字列をbyteの集合体に変換し、byte配列として返却します。
変換時の文字コードは実行環境に依存しますが、下記のように文字コードを指定して変換するメソッドも存在します。
str.getBytes("エンコード")
実際に書いてみよう
import java.io.UnsupportedEncodingException; import java.util.Arrays; public class Sample { public static void main(String[] args) throws InterruptedException, UnsupportedEncodingException { String str = "変換したい文字列"; byte[] def = str.getBytes(); byte[] utf8 = str.getBytes("UTF-8"); byte[] utf16 = str.getBytes("UTF-16"); System.out.println(Arrays.toString(def)); System.out.println(Arrays.toString(utf8)); System.out.println(Arrays.toString(utf16)); } }
実行結果は
[-27, -92, -119, -26, -113, -101, -29, -127, -105, -29, -127, -97, -29, -127, -124, -26, -106, -121, -27, -83, -105, -27, -120, -105] [-27, -92, -119, -26, -113, -101, -29, -127, -105, -29, -127, -97, -29, -127, -124, -26, -106, -121, -27, -83, -105, -27, -120, -105] [-2, -1, 89, 9, 99, -37, 48, 87, 48, 95, 48, 68, 101, -121, 91, 87, 82, 23]
となります。
※最初の配列の内容は実行環境によって異なります。
配列の中身を表示するためにArraysクラスのtoStringメソッドを使っています。配列の要素を文字列として全て出力することができます。
監修してくれたメンター
長屋雅美
独立系SIerで7年勤務後、現在はフリーのエンジニアとして自宅をオフィスとして活動しています。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもJavaやServletの技術を使ってWebアプリケーション開発を習得できるオンラインブートキャンプJava講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。