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進数) |
---|---|
A | 65 |
B | 66 |
… | … |
Z | 90 |
a | 97 |
b | 98 |
… | … |
z | 122 |
文字コードを利用するとできること
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年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
山崎講師2025年6月7日参照型の配列とNullPointerException
山崎講師2025年6月7日Javaでchar型は実は整数!?文字コードの正体に迫る!
山崎講師2025年6月7日Javaのエスケープシーケンスをマスターしよう!表示のズレに困ったらこれ!
山崎講師2025年6月7日Javaの「文字」と「文字列」の違いをやさしく解説!混同に注意!