アプリケーションを作成する段階では、開発者は原則としてその構造のみを知り、どのようなデータを処理するのかを想定しません。ただし、状況によっては、プログラム コード内で一部のデータ (反復回数や出力するメッセージなど) を明示的に指定する必要があります。この場合、リテラルが役に立ちます。 コンテンツ:
リテラルとは何ですか?
リテラルとは、プログラム コード内で明示的に指定された値、つまり起動時にコード内にある特定の型の定数です。class Test {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
このクラスでは「Hello world!」-文字通り。リテラルにはさまざまな種類があり、その目的と書き方によって決まります。
リテラルの種類とその用途
すべてのリテラルはプリミティブ値 (文字列、数値、文字、ブール値) です。リテラル オブジェクトを作成することはできません。オブジェクトに関連付けられた唯一のリテラルは ですnull
。プリミティブに従って、リテラルもセクションに分割されます。
- 数値:
- 整数;
- 浮動小数点;
- 弦;
- キャラクター;
- 頭の体操。
数値リテラル
整数リテラル
このタイプのリテラルは最も単純です。数字は文字などを示さずに標準形式で書かれます。デフォルトでは、整数は整数リテラルになります。つまり、変数の値またはループ内の反復回数を明示的に設定できます。Java は 4 つの数値体系をサポートしています。- バイナリ
- 8進数
- 10進数
- 16進数
public static void main(String[] args) {
int a = 0b1101010110;
int b = 012314;
int c = 456;
int d = 0x141D12;
System.out.println("Число a в двоичной системе: " + a);
System.out.println("Число b в восьмеричной системе: " + b);
System.out.println("Число c в десятичной системе: " + c);
System.out.println("Число d в шестнадцатеричной системе: " + d);
}
出力: 2進法の数値a:854 8進法の数値b:5324 10進法の数値c:456 16進法の数値d:1318162 異なる数値体系で指定されているにも関わらず、プログラム上では10進数として処理されます。数字。値を超えるとコンパイル エラーが発生します。
int b = 012914; // Ошибка
int d = 0x141Z12; // Ошибка
コンパイル段階で実行すると、次の結果が得られます。
Error:(13, 25) java: integer number too large: 012914
Error:(14,30) java: ';' expected
タイピングについてはどうですか?すべての整数リテラルのデフォルトの型は ですint
。その値が割り当てられた変数の範囲外である場合、コンパイル エラーが発生します。型を使用する場合は、この型を示す long
記号を末尾に付ける必要があります。L
long x = 0x1101010110; // Ошибка
long b = 1342352352351351353L; // Все в порядке
コンパイルしようとすると、次のエラーが発生します。
Error(11, 26) java: integer number too large: 1101010110
浮動小数点リテラル
浮動小数点数、つまり小数は 2 つの方法で記述できます。 1 つ目は、古典的な小数として、3.14159 または 2.718281282459045 です。 2 番目は科学形式です。つまり、通常の小数に、記号 e または E の形式の接尾辞と、指定された分数を乗算する必要がある 10 の累乗を加えたものです。たとえば、4.05E-13 は 4.05 * 10 -13を意味します。double a = 2.718281828459045;
double d = 4.05E-13;
System.out.println("Тип double в классическом виде: " + a);
System.out.println("Тип double в научном виде: " + d);
出力: 従来の double 型: 2.718281828459045 科学的 double 型: 4.05E-13 整数や数体系とは異なり、科学的表記法は変数に格納され、古典的な表記法と同じ方法で処理されます。タイピングについてはどうですか?任意の浮動小数点数が型を作成しますdouble
。タイプを使用する必要がある場合は、最後にまたは をfloat
追加する必要があります。この場合、type に縮小されます。これは自動的には起こりません。 f
F
double
float
float a = 2.718281828459045; // Ошибка
float d = 4.05E-13F; // Все в порядке
コンパイル段階から開始すると、次のエラーが表示されます。
Error:(11, 27) java: incompatible types: possible lossy conversion from double to float
文字列リテラル
文字列リテラルは、二重引用符で囲まれた一連の文字です。この型は、数値リテラルと同じくらい頻繁に使用されます。この行には、エスケープする必要があるサービス文字 (いわゆるエスケープ シーケンス) が含まれる場合もあります。例:String simpleString = "Это обычная строка. Такая же стандартная и непримечательная, How и все мы.";
String uniqueString = "А это необычная \"строка\". Хотя бы потому, что часть \"слов\" в ней в \"кавычках\".";
System.out.println(simpleString);
System.out.println(uniqueString);
出力: これは通常の文字列です。私たちと同じくらい標準的で、目立たないものです。そして、これは珍しい「ライン」です。その中の「単語」の一部が「引用符」で囲まれているという理由だけであれば。
文字リテラル
Java の文字リテラルは Unicode 文字セットで表されます。つまり、各文字は 16 ビット値です。コード内でシンボルを示すには、一重引用符で区切ります。経験に基づいて、シンボルには次の 2 種類があります。- キーボードから入力できる文字は通常の文字です。
- キーボードから単純に入力できない記号(さまざまな言語や図形などの記号)。
,
' または ' @
'。文字がサービス文字 (改行やタブなど) の場合、そのような文字はバックスラッシュでエスケープする必要があります。コンソールから単純に入力できない文字も、16ビット形式で指定できます。\u
これを行うには、 「 」のように接頭辞を付けて文字コードを指定する必要があります\u00F7
。「 」のように先頭にバックスラッシュを追加するだけで、8 進数スタイル (3 桁の数値) で文字を指定することもできます\122
。私の意見では、 の方がずっと使いやすいです\u
。使用例:
System.out.println("Амперсанд - " + '&');
System.out.println("Символ деления - " + '\u00F7');
出力: アンパサンド - & 除算記号 - ÷
ブールリテラル
最も単純なリテラルは論理リテラルです。false
値はとの 2 つだけでtrue
、さまざまな記号を使用せずに明示的に指定されます。このようなリテラルは、ブール型の変数に代入することも、ブール型が予期される場所 (たとえば、if ブロック内など) で指定することもできます。ただし、控えめに言っても、この方法はマナー違反と考えられています。
boolean flag = false;
if(true) {
// Действия будут выполняться всегда.
}
リテラルを使用したジェダイのテクニック
Java のシンボルのおかげで、絵文字の管理など、多くの興味深いことができます。たとえば、笑顔を表示してみましょう。int smile = 0x1F600; // Здесь шестнадцатеричный code эмоджи
StringBuilder sb = new StringBuilder();
sb.append(Character.toChars(smile)); // Собираем в StringBuilder
System.out.println("Улыбающееся лицо: " + sb.toString()); // Выводим
結論: 笑顔: 😀 絵文字の表示は (実装によっては) 不気味になる可能性がありますが、このソリューションはうまく機能します。ただし、標準のエンコード テーブルで目的の絵文字を検索するのは難しく、公式 Web サイトの絵文字セクションはまばらです。追加のライブラリを使用する方がはるかに簡単です。
GO TO FULL VERSION