Java の文字型 (char) について
Java の char 型とは?
Java の char
型は、文字を表すためのデータ型です。Java では、char
型は 2 バイト(16 ビット)のメモリを使用し、0 から 65535 までの範囲の整数値を持ちます。これは Unicode 文字セットに対応しており、世界中のほとんどの文字を表現することができます。
char
型は 1 文字を格納し、シングルクォート (' '
) で囲まれた形式で表されます。
char 型の宣言と初期化
char
型の変数を宣言するには、次のように記述します。
char letter = 'A';
char digit = '5';
char symbol = '@';
初期化時には、Unicode エスケープシーケンスを使用することもできます。
char unicodeChar = '\u0041'; // 'A' に対応する Unicode 値
数字としての char
型の例もあります。
char number = 65; // Unicode 65 に対応する 'A'
Unicode と char 型
Java の char
型は Unicode に対応しています。Unicode は、世界中の言語の文字を表現するための標準規格です。Java の char
型は Unicode 文字を 16 ビットで表します。
いくつかの Unicode 文字の例を示します。
char letterA = '\u0041'; // 'A'
char letterB = '\u0042'; // 'B'
char kanji = '\u6C34'; // '水' (日本語の漢字)
char smiley = '\u263A'; // '☺' (スマイリーフェイス)
Unicode のコードポイントを直接使用することで、言語やシンボルを超えた文字表現が可能です。
char 型の操作
char
型は整数値として扱われるため、いくつかの演算が可能です。例えば、文字の加算や減算を行うことで、アルファベットの順番を変えることができます。
文字の加算・減算
char letter = 'A';
letter++; // 'B' になる
letter += 2; // 'D' になる
数値としての char
char
型は数値として扱えるため、比較や計算が可能です。
char char1 = 'A';
char char2 = 'B';
System.out.println(char1 < char2); // true
文字関連のメソッド
Java には、文字を扱うための便利なメソッドが Character
クラスに用意されています。主なメソッドをいくつか紹介します。
大文字・小文字の判定
char ch = 'A';
System.out.println(Character.isUpperCase(ch)); // true
System.out.println(Character.isLowerCase(ch)); // false
数字の判定
char digit = '5';
System.out.println(Character.isDigit(digit)); // true
大文字・小文字の変換
char upper = 'A';
char lower = Character.toLowerCase(upper); // 'a'
char lower2 = 'b';
char upper2 = Character.toUpperCase(lower2); // 'B'
具体的な使用例
以下に、いくつかの具体的な使用例を示します。
文字列の中の大文字を数える
public class CountUpperCase {
public static void main(String[] args) {
String str = "Hello World!";
int count = 0;
for (int i = 0; i < str.length(); i++) {
if (Character.isUpperCase(str.charAt(i))) {
count++;
}
}
System.out.println("大文字の数: " + count);
}
}
文字コードを表示する
public class CharToAscii {
public static void main(String[] args) {
char ch = 'A';
int ascii = (int) ch;
System.out.println("ASCII値: " + ascii);
}
}
char 型の注意点と制限
char
型にはいくつかの注意点と制限があります。
- 2 バイトの制限:
char
型は 16 ビットであるため、Unicode のサロゲートペアを使用する文字(絵文字や特殊文字)を 1 つのchar
で表現できません。 - 符号なし:
char
型は符号なしで、負の値は格納できません。 - 数値と文字の混在:
char
は数値として扱えるため、意図しない計算結果になることがあります。