天天看點

java數字下劃線

如文檔 https://docs.oracle.com/javase/7/docs/technotes/guides/language/underscores-literals.html

In Java SE 7 and later, any number of underscore characters (_) can appear anywhere between digits in a numerical literal. This feature enables you, for example, to separate groups of digits in numeric literals, which can improve the readability of your code.

在JAVASE1.7或更高版本中,數字之間可以出現任意數量的下劃線,你可以使用這個特性将一組數字隔開,提高代碼的可讀性。

For instance, if your code contains numbers with many digits, you can use an underscore character to separate digits in groups of three, similar to how you would use a punctuation mark like a comma, or a space, as a separator.

The following example shows other ways you can use the underscore in numeric literals:

例如,代碼中包含許多數字,你可以使用下劃線将數字分成三組,與你使用逗号、空格等符号作為分隔符一樣。

下面是一些在數字中使用下劃線的示例。

long creditCardNumber = 1234_5678_9012_3456L;

long socialSecurityNumber = 999_99_9999L;

float pi = 3.14_15F;

long hexBytes = 0xFF_EC_DE_5E;

long hexWords = 0xCAFE_BABE;

long maxLong = 0x7fff_ffff_ffff_ffffL;

byte nybbles = 0b0010_0101;

long bytes = 0b11010010_01101001_10010100_10010010;

You can place underscores only between digits; you cannot place underscores in the following places:

At the beginning or end of a number

Adjacent to a decimal point in a floating point literal

Prior to an F or L suffix

In positions where a string of digits is expected

你隻能在數字間使用下劃線,以下幾種都不行:

1、在數字的開頭結尾

2、與浮點數的點相鄰

3、在F之前或L之後

4、在需要數字的位置

The following examples demonstrate valid and invalid underscore placements (which are highlighted) in numeric literals:

float pi1 = 3_.1415F; // Invalid; cannot put underscores adjacent to a decimal point

float pi2 = 3._1415F; // Invalid; cannot put underscores adjacent to a decimal point

long socialSecurityNumber1

= 999_99_9999_L; // Invalid; cannot put underscores prior to an L suffix

int x1 = 52; // This is an identifier, not a numeric literal

int x2 = 5_2; // OK (decimal literal)

int x3 = 52; // Invalid; cannot put underscores at the end of a literal

int x4 = 5_______2; // OK (decimal literal)

int x5 = 0_x52; // Invalid; cannot put underscores in the 0x radix prefix

int x6 = 0x_52; // Invalid; cannot put underscores at the beginning of a number

int x7 = 0x5_2; // OK (hexadecimal literal)

int x8 = 0x52_; // Invalid; cannot put underscores at the end of a number

int x9 = 0_52; // OK (octal literal)

int x10 = 05_2; // OK (octal literal)

int x11 = 052_; // Invalid; cannot put underscores at the end of a number