Javaでchar型は実は整数!?文字コードの正体に迫る!

こんにちは。ゆうせいです。

今回は「char型は整数である」という、少し意外に思えるかもしれないJavaの仕組みについて説明します。

えっ、文字って文字でしょ?どうして整数なの?
そんな疑問を持った方、大正解です!
この記事を読めば、なぜcharが数値として扱えるのか、そしてそれがどんな場面で役立つのかがわかるようになります!


サンプルコードで確認してみよう

public class Example08 {

    public static void main(String[] args) {
        char a = 'A';
        a += 32;
        System.out.println(a);
    }
}

実行結果:

a

ここで何が起きたのでしょうか?


char型は「整数(数値)」として扱える!

Javaのchar型は、実は「文字コードを表す整数型(16ビット)」です。
つまり、'A'は「Aという文字」ではあるものの、内部的には「数値」として記録されているのです。


実験:文字コードを調べてみよう

public class Test {
    public static void main(String[] args) {
        char c = 'A';
        int code = c;
        System.out.println(code); // 出力: 65
    }
}

この結果、'A' の文字コードは 65 だとわかります。


「A」に32を足すと「a」になる理由

実際に 'a' の文字コードも確認してみましょう。

public class Test {
    public static void main(String[] args) {
        System.out.println((int)'A'); // 65
        System.out.println((int)'a'); // 97
    }
}

計算してみると

'a' = 'A' + 32
   = 65 + 32
   = 97

つまり、大文字と小文字のアルファベットは、文字コード的に「32」違うんですね!

これはアルファベットの文字コードが ASCII(アスキー)コード に基づいて設計されているためです。


ASCIIコードとは?

ASCIIとは?

ASCII(American Standard Code for Information Interchange)
アメリカで作られた、英数字と記号の文字コード体系です。

以下はその一部です:

文字コード(10進数)
A65
B66
Z90
a97
b98
z122

文字コードを利用するとできること

1. 大文字・小文字の変換

char upper = 'F';
char lower = (char)(upper + 32);
System.out.println(lower); // f

逆に、小文字から大文字にしたければ -32 します。

2. ランダムな英数字の生成

文字コードの範囲を知っていれば、次のようにランダムな文字を作れます。

char randomChar = (char)(Math.random() * 26 + 'A'); // ランダムなA〜Z

3. 簡易的な暗号化・復号化

char original = 'K';
char encrypted = (char)(original + 3); // 簡易シーザー暗号
char decrypted = (char)(encrypted - 3);

このように「文字なのに数値として扱える」ことで、さまざまな文字操作やロジックが簡単に書けるのです!


まとめ:char型は“文字に見える数値”!

特徴内容
実体16ビットの整数
表現されるものUnicode文字(UTF-16)
'A' + 32の意味'A'の文字コードに数値32を加算
主な用途大文字・小文字変換、文字列操作など

Javaにおけるchar文字そのものではなく、文字コードという数値の顔も持つ型なのです。


今後の学習の指針

この知識を活かすために、次のようなテーマに進んでみましょう!

  • Characterクラスのメソッド(大文字小文字判定など)
  • Stringクラスとの相互変換
  • 文字列の暗号化/復号化処理(例:Caesar cipher)
  • Unicodeとマルチバイト文字の理解(日本語・絵文字など)

「文字 = 数値」と考えられるようになると、コードの自由度が一気に広がります!

ぜひ手元でコードを書いて、文字コードの変化を体感してみてください!


セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。