はじめに
Java の基本文法の中でも、
「char 型」 はちょっと不思議な存在です。
- 文字を扱う型なのに数値として扱える
'A'が 65 になる- Unicode という言葉が出てくる
最初は「なんでそうなるの?」と戸惑いがちです。
この記事では、やさしく・実務寄りに
char 型の仕組みと文字コードの基本を整理していきます。
まずはコードを確認
Java
char c = 'A';
System.out.println(c); // A
System.out.println((int)c); // 65
char japanese = 'あ';
System.out.println((int)japanese); // 12354(Unicode)
char next = (char) (c + 1);
System.out.println(next); // Bコードのしくみを解説
char は「1文字を表す数値」
Java の char は
「1文字を表すための数値」 です。
Java
char c = 'A';この 'A' は内部的には 65 という数値として扱われます。
イメージ:
- “文字”というより“文字コード番号”を入れている
- 見た目は文字だけど、中身は数値
Java の char は Unicode(UTF-16)
Java の char は Unicode(UTF-16) を使っています。
'A'→ 65'あ'→ 12354'漢'→ 28450
ASCII よりも広い範囲を扱えるため、 日本語や記号も char で扱えます。
char は数値として計算できる
Java
char c = 'A';
char next = (char) (c + 1);
System.out.println(next); // B'A' は 65 なので、
65 + 1 → 66 → 'B' になります。
char → int は暗黙の型変換
Java
char c = 'A';
int code = c; // OKchar は数値なので、
int にそのまま入ります。
あわせて知っておきたいポイント
char は 2バイト(16ビット)
Java の char は 2バイト固定です。
- 0〜65535 の範囲
- Unicode の一部を表現できる
ただし、絵文字など一部の文字は
サロゲートペア という仕組みが必要で、
char 1つでは表せません。
文字列(String)とは別物
Java
char c = 'A'; // 1文字
String s = "A"; // 文字列(複数文字)- char → 1文字
- String → 文字列(0文字〜無限)
実務では String を使うことが多く、
char は「1文字だけ扱いたいとき」に使われます。
char の比較は数値比較
Java
System.out.println('A' < 'B'); // true内部的には 65 < 66 の比較です。
使うときに気をつけたいこと
- char は“文字”ではなく“文字コード番号”として扱われる
- 日本語も Unicode の番号として扱われる
- char の計算は数値計算になる
- String と char は別物
- 絵文字など一部の文字は char 1つでは扱えない
実務では、 「char は数値として扱える」という理解があると バグを避けやすくなります。
まとめ
char 型の基本
- 1文字を表す数値(Unicode)
'A'は 65、'あ'は 12354- 数値として計算できる
注意点
- String とは別物
- 絵文字は char 1つでは扱えない
- 比較は数値比較になる

decopon
char 型は、最初は「文字を扱う型」と思いがちですが、 実は「文字コード番号を扱う型」と理解すると 一気にスッキリします。
Java Bronze の試験でも、 実務のデバッグでも役に立つ知識です。
あなたの学びが、次のステップにつながりますように。

moco
‘A’ が 65 って、ちょっと不思議だよね。
でも“文字は番号で管理されてる”って知ると、世界が広がるよ。

コメント