带有下划线的Numeric文字如何在java中工作以及为什么它作为jdk 1.7的一部分添加

Dar*_*ght 53 java java-7

有人可以解释一下,为什么在JDK 7中添加了这个功能以及它是如何工作的?

在浏览JDK 7新功能时,我发现了以下代码.

int i;
//Java 7 allows underscore in integer
i=3455_11_11;
Run Code Online (Sandbox Code Playgroud)

Pra*_*mha 63

这用于对数字中的数字进行分组(比如信用卡等)

来自Oracle网站:

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

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

总而言之,这只是为了便于阅读.


Mar*_*oun 33

请参阅数字文字中的下划线:

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

试试这个:

int num = 111_222;
System.out.println(num); //Prints 111222
Run Code Online (Sandbox Code Playgroud)

之所以增加这个功能,是因为有时很难读取长数字,所以你可以这样做,而不是计算一个数字必须计算多少"零"(如果它是一百万或十万),你可以这样做:

int myNum = 1_000_000;

现在很容易看出有两组3个零,显然这个数字是百万.比较它:

int myNum = 1000000;

承认..在这里你必须计算每个零..


Jun*_*san 5

_用于数字文字的JDK 7 功能仅出于可读性考虑。根据文档

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


Joh*_* H. 5

整数字面量中的下划线被完全忽略。例如,它可以添加到以 3 为一组的长数字中的数字组中(就像在文本中所做的那样)。