こんにちは、現役SEの「とも」です。
今回は、「文字型」について書いていきたいと思います。
【文字型】
Javaの基本データ型としての文字型は、以下のように1文字だけを扱うchar型だけになります。
型 | 必要なメモリサイズ | 説明 |
---|---|---|
char | 2バイト(16ビット) | 1文字を表現する型 |
通常はchar型単体で使用する局面は少なく、文字を扱う場合は「文字列を扱えるString型」を使用します。
とは言っても、たまには使用するケースもあります。
String型は、別の記事で書きますので、今回はchar型について説明します。
char型が保持する文字は、Unicodeという文字コードで格納されることになります。
文字コードというのは、「データと表現する文字の対応」を規格化したもので、いろいろな種類の文字コードがあります。
代表的な例でいうと、Shift_JIS(シフトJIS)やUTF-8などあります。
例として「ひらがなの”あ”」という文字は、それぞれの文字コードでどう表現するかというと、
- Shift_JIS → 0x82A0
- UTF-8 → 0xe38182
- Unicode → \u3042
となります。
「あ」を表現するために、数値の解釈のしかたを定めたルールが文字コードなんですね。
文字化けが起こるのは、例えば、
- Shift_JISで保存した「あ」のデータを、「UTF-8」で読み込もうとしたら、UTF-8の「0x82A0」は「あ」にならず、別の表現になってしまうからなんです。
少し脱線しましたが、Javaのchar型に「あ」を設定すると、Unicode形式でデータが格納されると考えてください。
文字コードは複雑で奥が深いので深入りはしませんが、とりあえずは
- javaのchar型はUnicode形式でデータが格納される
- 1文字しか格納できない
とだけ覚えておけばchar型を取り扱う上で特に不都合はないと思います。