【Javaの基礎】Javaのリテラル

 

こんにちは、現役SEの「とも」です。

今回は、変数の初期化や条件分岐でよく使われるリテラルについてです。

 

リテラルとは、ソースコード中に記載する文字列や数値といった値そのものです。

リテラルの種類としては以下があります。

  • 整数
  • 浮動小数点
  • 文字
  • 文字列
  • 真偽値

 

整数リテラル

 

整数のリテラルは、以下のように書き方によってJavaが解釈するデータ型が異なります。

 

  • 「1」の記載の場合は、int型として解釈されます。
  • 「1Lまたは1l(小文字のL)」の記載の場合は、long型として解釈されます。

 

ソースで記載すると、以下のようになります。

 
int a = 1; // int型で解釈される
long b = 1L; // long型として解釈される
long c = 1l; // long型として解釈される
	

 

 

大きな桁数で見やすくする場合

 

整数リテラルの場合、大きい数値を表す時に桁数が分かりにくくなるので、桁数を見やすくしたい場合があります。

その場合、以下のように、「_」を使った記載ができます。

 

 
int a = 1_234_567_890;
	

 

  • 実際に変数に格納される際は「_」部分は除外して代入されますので、見た目以外の影響はありません。

 

2進数、8進数、16進数での表現

 

整数リテラルでは、10進数以外でも2進数、8進数、16進数で表現することができます。

 

  • 2進数は、先頭に「0b」を付けた後に、2進数の数値表現を記載します。
  • 8進数は、先頭に「0」を付けた後に、8進数の数値表現を記載します。
  • 16進数は、先頭に「0x」を付けた後に、16進数の数値表現を記載します。

 

ソースで記載すると、以下のようになります。

 
int a = "0b1010"; // 2進数で表現(10の値がaに入る)
int b = "012"; // 8進数で表現(10の値がaに入る)
int c = "0xa"; // 16進数で表現(10の値がaに入る)
	

 

浮動小数点リテラル

 

浮動小数点のリテラルは、以下のように書き方によってJavaが解釈するデータ型が異なります。

 

  • 「1.0」の記載の場合は、double型として解釈されます。
  • 「1.0Fまたは1.0f」の記載の場合は、float型として解釈されます。

 

ソースで記載すると、以下のようになります。

 
double a = 1.0; // double型で解釈される
float b = 1.0F; // float型として解釈される
float c = 1.0f; // float型として解釈される
	

 

浮動小数点型リテラルでも「_」の表記で見やすくできます。

 
double a = 123_456.789_012_3;
	

 

文字リテラルと文字列リテラル

 

文字のリテラルは、以下のようにシングルクォーテーション(’)で囲って表現することで1文字のchar型として解釈されます。

 

 
char c = 'あ'; // char型として解釈される
	

 

文字列のリテラルは、以下のようにダブルクォーテーション(”)で囲って表現することで文字列として解釈されます。

 

 
String str = "あいうえお"; // String型として解釈される
	

 

エスケープシーケンス

 

改行やタブなどの文字として現れないものや、Javaが特殊な解釈をする予約文字を表現する表記を、「エスケープシーケンス」と言います。

 

良く使うエスケープシーケンスには、以下のようなものがあります。

 

エスケープシーケンス 表現する文字
\t タブ
\r CR:キャリッジリターン(改行と組み合わせて使う「例:\r\n」)
\n 改行
\\ 「\」を文字として表示
\” 「”」を文字として表示
\’ 「’」を文字として表示

 

エスケープシーケンスは2文字を入力することになりますが、実際には文字コードに変換されて1文字の扱いになるため、char型にも設定できます。

 

 
char c = '\n'; // 改行コードを設定
	

 

文字コードでの設定

 

ほぼ使うことはないと思いますが、文字リテラルや文字列リテラルでは、文字コードでの設定をすることもできます。

 

 
char a = '\u3042'; // 「あ」の文字コード
String str = "\u3042\u3044"; // 「あい」の文字列
	

 

真偽値リテラル

 

真偽値のリテラルは、boolean型のリテラルの記載方法です。

以下のようにダブルクォーテーションで囲まない「true」または「false」の文字で記載します。

 

 
boolean a = true; // 真の意味
boolean a = false; // 偽の意味
	

 

以上が、リテラルの説明でした。