Подчеркивание в числовых литералах — одна из «фич» Java 7. С помощью неё мы можем использовать подчеркивания между цифрами любого числового литерала, например: int, byte, short, float, long, double
. Использование подчеркивания в числовых литералах позволит вам разделить их на группы для лучшей читаемости.
Давайте посмотрим подчеркивания в числовых литералах на примере простой Java программы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
package ua.com.prologistic; // пример использования подчеркивания в числовых литералах // для различных типов данных public class UnderscoreNumericLiterals { public static void main(String[] args) { // задаем начальные значения для различных типов // с использованием числовых литералов long ccNumber = 1234_5678_9012_3456L; long ssn = 999_99_9999L; float pi = 3.14_15F; long hexadecimalBytes = 0xFF_EC_DE_5E; long hexadecimalWords = 0xCAFE_BABE; long maxOfLong = 0x7fff_ffff_ffff_ffffL; byte byteInBinary = 0b0010_0101; long longInBinary = 0b11010010_01101001_10010100_10010010; int add = 12_3 + 3_2_1; // смотрим в консоль результат печати приведенных выше переменных System.out.println("ccNumber="+ccNumber); System.out.println("ssn="+ssn); System.out.println("pi="+pi); System.out.println("hexadecimalBytes="+hexadecimalBytes); System.out.println("hexadecimalWords="+hexadecimalWords); System.out.println("maxOfLong="+maxOfLong); System.out.println("byteInBinary="+byteInBinary); System.out.println("longInBinary="+longInBinary); System.out.println("add="+add); } } |
Результат выполнения приведенной выше программы печати переменных различных типов данных с использованием подчеркивания в числовых литералах.
1 2 3 4 5 6 7 8 9 |
ccNumber=1234567890123456 ssn=999999999 pi=3.1415 hexadecimalBytes=-1253794 hexadecimalWords=-889275714 maxOfLong=9223372036854775807 byteInBinary=37 longInBinary=-764832622 add=444 |
Советы по использованию подчеркивания в числовых литералов
- Подчеркивания могут использоваться только между цифрами.
- Вы не можете поставить подчеркивание рядом с запятой, L/F суффиксом или префиксом. Так, использования 3._14, 110_L, 0x_123 вызовет ошибку компиляции.
- Допускается использовать несколько подчеркиваний между цифрами. Так, запись 12___3 является допустимой.
- Вы не можете поставить подчеркивания в конце литерала. Так, запись 123_ вызовет ошибку компиляции.
- Если написать подчеркивание в начале числового литерала, он рассматривается в качестве идентификатора, а не числового литерал. Вот как это выглядит:
12int _11 = 0;int x = _11;