在Java SE 7和更高版本中,_数字文字中数字之间的任何位置都可以出现任意数量的下划线字符()。例如,此功能使您可以将数字文字中的数字组分开,这可以提高代码的可读性。
例如,如果您的代码包含许多数字,则可以使用下划线字符将数字分成三组,类似于使用逗号或空格这样的标点符号作为分隔符的方式。
下面的示例显示了在数字文字中使用下划线的其他方式:
长creditCardNumber = 1234_5678_9012_3456L;
long socialSecurityNumber = 999_99_9999L;
浮点pi = 3.14_15F;
long hexBytes = 0xFF_EC_DE_5E;
long hexWords = 0xCAFE_BABE;
long maxLong = 0x7fff_ffff_ffff_ffffL;
字节半字节= 0b0010_0101;
长字节= 0b11010010_01101001_10010100_10010010;
您只能在数字之间使用下划线;您不能在以下位置放置下划线:
- 在数字的开头或结尾
- 与浮点文字中的小数点相邻
- 之前F或L后缀
- 在需要一串数字的位置
下面的示例演示数字文字中的有效和无效的下划线位置(突出显示):
浮点pi1 = 3_.1415F; // 无效的; 不能将下划线放在小数点附近
浮点pi2 = 3._1415F; // 无效的; 不能将下划线放在小数点附近
long socialSecurityNumber1
= 999_99_9999_L; // 无效的; 不能在L后缀前加下划线
int x1 = 52; //这是一个标识符,而不是数字文字
int x2 = 5_2; // OK(十进制文字)
**int x3 = 52; // 无效的; 不能在文字的末尾加下划线**
int x4 = 5_2; // OK(十进制文字)
int x5 = 0_x52; // 无效的; 无法在0x基数前缀
int x6 = 0x_52中添加下划线;// 无效的; 不能在数字开头加下划线
int x7 = 0x52; // OK(十六进制文字)
**int x8 = 0x52; // 无效的; 不能在数字末尾加下划线**
int x9 = 052; // OK(八进制文字)
int x10 = 05_2; // OK(八进制文字)
**int x11 = 052; // 无效的; 不能在数字末尾加下划线**
参考连接地址:
https://docs.oracle.com/javase/7/docs/technotes/guides/language/underscores-literals.html