Java:文字列とbyte(char)配列の変換方法

   2015/07/16

分かってしまえば「なぁんだ」ということでも、分かるまでは四苦八苦します。
このブログも、管理人イガジーが四苦八苦した事を忘れないように
記録するためのものだったりします。

さて、タイトルの文字列と配列の変換ですが、これも分かってしまえば
単純なことなのですが、分かるまでは悩んだものです。

まず、文字列を配列に変換するには次のようにします。
byte [] bb="string".getBytes(); // byte配列への変換char [] cc="string".toCharArray(); // char配列への変換 getChars()は誤記でした。すみません
“string”の部分は、もちろん変数でも可です。

String ss="hogefuga";
byte [] bb=ss.getBytes();
for (int i=0;i<bb.length;++i) System.out.printf("%02X ",bb[i]);


配列を文字列に変換する場合は、次のようにnew String()を使います。

byte [] bb={ 0x41, 0x42, 0x43};
char [] cc={ 0x61, 0x62, 0x63};
String sb=new String(bb);
String sc=new String(cc);
System.out.println(sb);
System.out.println(sc);

文字コードを指定したい場合は
String sb=new String(bb,"UTF-8");の様に、charsetNameを指定します。
標準でサポートされている charName は以下のものです。

US-ASCII 7 ビット ASCII (ISO646-US/Unicode 文字セットの
Basic Latin ブロック)
ISO-8859-1 ISO Latin Alphabet No. 1 (ISO-LATIN-1)
UTF-8 8 ビット UCS Transformation Format
UTF-16BE 16 ビット UCS 変換形式、ビッグエンディアンバイト順
UTF-16LE 16 ビット UCS 変換形式、リトルエンディアンバイト順
UTF-16 16 ビット UCS 変換形式、オプションのバイト順マークで
識別されるバイト順

※ 追記 ※
char1文字(例えば’a’)を文字列(“a”)に変換するには
String.valueOf()を使います。
char ca='a';
String stra=String.valueOf(ca);

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)