0
0

More than 1 year has passed since last update.

【Java】toCharArrayメソッドで2バイト文字が渡ったときの扱い

Last updated at Posted at 2022-11-13

はじめに

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バイトの文字なんて入るのか?という新たな疑問が産まれた。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0