はじめに
Java問題集を解いていて、疑問に思ったことを調べたメモ書き
基本情報技術者試験H27年度春期午後問11「セキュアプログラミング」の設問1,dについて
1. char型からint型へのキャスト
この問いでは、char型からint型へのキャストも気になったので触れる。
1. 以下の記事を参考にした
char型は1バイト文字を扱うための型で、intは通常2バイト以上らしい。
(2022/11/15訂正:javaの場合、charは2バイト、intは4バイトです)
小さいほうから大きい方へキャストするだけなので、可能とのこと。(符号ありの場合など例外あり)
2. toCharArrayメソッド
String型の変数でtoCharArray()メソッドを使用し、
char[] chars = s.toCharArray();
のように使用して、文字列を文字配列に置き換えたあと、1文字ずつに対して何らかの処理を行う際に用いる。
この時に、String型の変数の中に漢字などの2バイト文字が入っていたらどうなるか?と迷ってしまった。
結論としては、2バイト文字を変換すると、charの配列の1要素に2バイト分のデータが詰め込まれるようである。
配列の要素2つ分を使って格納するのかな?とも考えていたので迷った。
まとめ
toCharArrayメソッドで2バイト文字を渡すと、格納先がchar型配列ならば1要素に詰め込まれるみたい。
エンコードのプログラムとかで役に立つかも。
char型配列の1要素に2バイトの文字なんて入るのか?という新たな疑問が産まれた。