Javaの文字リテラル
についてまとめました。
文字列リテラルと文字リテラルの違いとは?
簡潔にまとめると以下の違いです。
文字リテラル
- char 型で使用する
- シングルクォーテーション「 ’」で囲む
- 1 文字を表現する
文字列リテラル
- String型を使用する
- ダブルクォーテーションで囲む
- 複数の文字のまとまりを表現する
【文字リテラルとは】
文字リテラルは一つの文字の値です。「a」や「あ」などが文字リテラルになります。
文字リテラルの書き方
文字リテラルを表すにはシングルクォーテーション(')で囲んで表現します。
char a = 'a';
char b = 'あ';
以下のようにシングルクオートの中が空っぽであったり、文字列だったり、nullが入力されているとエラーになる。
char a = '';
char a = 'あいうえお';
char a = null;
Unicode
コンピュータ内部では文字ひとつひとつに数値が割り当てられていて、この文字に対して割り当てられた数値のことを文字コードと呼んでいる。
文字コードには色々な業界規格があり、Javaはそれら規格の中でUnicodeを使っている。
Unicodeとは
Unicodeは「符号化文字集合」と言われ、世界中の文字に対して、番号が割り当てられ管理されている集合体のこと。ここで割り振られている番号のことをコードポイントと言います。コードポイントは符号位置(文字集合内の文字の位置)であって、符号化方式ではありません。コードポイントは16進数表示で頭にU+を付けて用いられる。
Javaでは以下のように「\u」の接続詞の後ろに16進数4桁をつけシングルクォートで囲って表現する。
public class Main {
public static void main(String[] args) {
char d = '\u30A2';
System.out.println(d);
}
}
ア
char型を変数に数値を代入する
上記のような特性から、char型を変数には0 ~ 65535までの数値を代入できます。下記はアルファベットのAを表示するプログラムです。
public class Main {
public static void main(String[] args) {
char e = 65;
System.out.println(e);
}
}
A
プリミティブ型にnullの代入は不可
nullは参照型変数が何も参照しないことを表現するためのデータのため、char のようなプリミティブ型の変数は値を保持するものであるため、参照を保持できない。
つまり nullを格納することが出来ないということ。
【まとめ】
Silver試験の対策としては以下を抑える。
- charは 1文字を表現する
- char型の変数にはダブルクォーテーションで囲った文字リテラルは代入できない
- 文字リテラルにnullは代入できない
- char型を変数には0 ~ 65535までの数値を代入できる