Java:文字列とbyte(char)配列の変換方法
分かってしまえば「なぁんだ」ということでも、分かるまでは四苦八苦します。
このブログも、管理人イガジーが四苦八苦した事を忘れないように
記録するためのものだったりします。
さて、タイトルの文字列と配列の変換ですが、これも分かってしまえば
単純なことなのですが、分かるまでは悩んだものです。
まず、文字列を配列に変換するには次のようにします。
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);
この記事へのコメントはこちら