数字文字中的 Java 7 下划线

2022-08-31 16:36:13

当我们必须使用a来分隔数字时,我不明白以下我无法使用它的情况:_

在需要一串数字的位置

(如此处的 JDK7 指南中所述)

一些例子?


答案 1

您不必使用“_”,您可以。提案中给出的示例是信用卡号,电话号码,或者只是在代码中使用分隔符有意义的数字。

对于“在需要一串数字的位置”,它只是在它应该以数字开始(或结束)的地方。下面是一些示例。

请注意,根据此建议,下划线只能放在数字之间。它们不能单独放置在通常需要一串数字的位置:

int x1 = _52;这是一个标识符,而不是数字文本。

int x2 = 5_2;好的(十进制文字)

int x2 = 52_;非法。(下划线必须始终位于数字之间)

int x3 = 5_______2;(十进制文字。

int x4 = 0_x52;非法。不能将下划线放在“0x”基数前缀中。

int x5 = 0x_52;非法。(下划线必须始终位于数字之间)

int x6 = 0x5_2;好的(十六进制文字)

int x6 = 0x52_;非法。(下划线必须始终位于数字之间)

int x6 = 0x_;非法。(删除下划线后无效)

int x7 = 0_52;好的(八进制字面)

int x7 = 05_2;好的(八进制字面)

int x8 = 052_;非法。(下划线必须始终位于数字之间)


资源:


答案 2

正如Javadoc中所写的:

在 Java SE 7 及更高版本中,任意数量的下划线字符 (_) 都可以出现在数字文本中数字之间的任何位置。例如,此功能使您能够在数字文本中分隔数字组,这可以提高代码的可读性。

例如,如果您的代码包含具有许多数字的数字,则可以使用下划线字符以三组为单位分隔数字,类似于使用逗号或空格等标点符号作为分隔符的方式。

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;

推荐