getBytes
日本語 | バイト配列取得 |
英語 | get bytes |
ふりがな | げっとばいつ |
フリガナ | ゲットバイツ |
Stringクラスのメソッド。
Stringクラス内の文字列を、byte型の配列として取り出す。
Stringクラス内ではUnicodeとして格納されており、Unicodeの1文字は2バイトのため、この2バイトを1バイトずつにわけて配列に格納する。つまり戻り値として返される配列の要素数は、文字数の倍となる。
getBytes()メソッドを引数なしで呼び出すと、OSのデフォルトの文字コードに変換して取り出す。
また、第1引数でIANAでの登録名を指定することで、指定した登録名が該当する文字コードで取り出す事ができる。全く変換せずに取り出す場合には"ISO-8859-1"を渡す。
文字コードの変換や、文字化け時のデバッグに大活躍するが、あまり大活躍して欲しくないメソッドでもある。
Stringクラス内の文字列を、byte型の配列として取り出す。
Stringクラス内ではUnicodeとして格納されており、Unicodeの1文字は2バイトのため、この2バイトを1バイトずつにわけて配列に格納する。つまり戻り値として返される配列の要素数は、文字数の倍となる。
getBytes()メソッドを引数なしで呼び出すと、OSのデフォルトの文字コードに変換して取り出す。
また、第1引数でIANAでの登録名を指定することで、指定した登録名が該当する文字コードで取り出す事ができる。全く変換せずに取り出す場合には"ISO-8859-1"を渡す。
文字コードの変換や、文字化け時のデバッグに大活躍するが、あまり大活躍して欲しくないメソッドでもある。
// Sample.java
import java.io.UnsupportedEncodingException;
// Sample.java
public class Sample
{
public static void main( String[] args )
{
try
{
// まず、Stringクラスに「あいう」を入れます。
String string = "あいう";
System.out.println( string );
// あいう
// getBytes()メソッドでバイト配列を取得します。
// Unicode(正式名称「UCS-2」、IANAでの登録名"ISO-10646-UCS-2")
// で取り出します。
byte[] bytes = string.getBytes( "ISO-10646-UCS-2" );
for( int iF1 = 0; iF1 < bytes.length; ++iF1 )
{
System.out.println( bytes[iF1] );
}
// 48
// 66
// 48
// 68
// 48
// 70
// 元に戻す時は、Stringクラスのコンストラクタに、
// 第1引数にこの配列、第2引数に文字コードを指定します。
// 文字コードの変換はStringクラスのコンストラクタで行います。
// 第1引数には他文字コードの文字列が格納されたbyte型配列を渡します。
// 第2引数には、そのbyte型配列に格納されている文字列の文字コードを渡します。
// そうするとUnicodeに変換されて格納されます。
string = new String( bytes, "ISO-10646-UCS-2" );
System.out.println( string );
// あいう
}
catch( UnsupportedEncodingException e )
{
// StringクラスのコンストラクタがUnsupportedEncodingException例外を
// 投げるので拾います。第2引数で渡された文字コード
// (上記の例では「ISO-10646-UCS-2」)が、Javaではサポート
// されていない文字コードの場合にエラーとなります。
e.printStackTrace();
}
}
}
import java.io.UnsupportedEncodingException;
// Sample.java
public class Sample
{
public static void main( String[] args )
{
try
{
// まず、Stringクラスに「あいう」を入れます。
String string = "あいう";
System.out.println( string );
// あいう
// getBytes()メソッドでバイト配列を取得します。
// Unicode(正式名称「UCS-2」、IANAでの登録名"ISO-10646-UCS-2")
// で取り出します。
byte[] bytes = string.getBytes( "ISO-10646-UCS-2" );
for( int iF1 = 0; iF1 < bytes.length; ++iF1 )
{
System.out.println( bytes[iF1] );
}
// 48
// 66
// 48
// 68
// 48
// 70
// 元に戻す時は、Stringクラスのコンストラクタに、
// 第1引数にこの配列、第2引数に文字コードを指定します。
// 文字コードの変換はStringクラスのコンストラクタで行います。
// 第1引数には他文字コードの文字列が格納されたbyte型配列を渡します。
// 第2引数には、そのbyte型配列に格納されている文字列の文字コードを渡します。
// そうするとUnicodeに変換されて格納されます。
string = new String( bytes, "ISO-10646-UCS-2" );
System.out.println( string );
// あいう
}
catch( UnsupportedEncodingException e )
{
// StringクラスのコンストラクタがUnsupportedEncodingException例外を
// 投げるので拾います。第2引数で渡された文字コード
// (上記の例では「ISO-10646-UCS-2」)が、Javaではサポート
// されていない文字コードの場合にエラーとなります。
e.printStackTrace();
}
}
}
// Sample.java import java.io.UnsupportedEncodingException; // Sample.java public class Sample { public static void main( String[] args ) { try { // まず、Stringクラスに「あいう」を入れます。 String string = "あいう"; System.out.println( string ); // あいう // getBytes()メソッドでバイト配列を取得します。 // Unicode(正式名称「UCS-2」、IANAでの登録名"ISO-10646-UCS-2") // で取り出します。 byte[] bytes = string.getBytes( "ISO-10646-UCS-2" ); for( int iF1 = 0; iF1 < bytes.length; ++iF1 ) { System.out.println( bytes[iF1] ); } // 48 // 66 // 48 // 68 // 48 // 70 // 元に戻す時は、Stringクラスのコンストラクタに、 // 第1引数にこの配列、第2引数に文字コードを指定します。 // 文字コードの変換はStringクラスのコンストラクタで行います。 // 第1引数には他文字コードの文字列が格納されたbyte型配列を渡します。 // 第2引数には、そのbyte型配列に格納されている文字列の文字コードを渡します。 // そうするとUnicodeに変換されて格納されます。 string = new String( bytes, "ISO-10646-UCS-2" ); System.out.println( string ); // あいう } catch( UnsupportedEncodingException e ) { // StringクラスのコンストラクタがUnsupportedEncodingException例外を // 投げるので拾います。第2引数で渡された文字コード // (上記の例では「ISO-10646-UCS-2」)が、Javaではサポート // されていない文字コードの場合にエラーとなります。 e.printStackTrace(); } } }