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

时间:2013-11-06 07:49:15

标签: java java-7

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

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

int i;
//Java 7 allows underscore in integer
i=3455_11_11;

4 个答案:

答案 0 :(得分:47)

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

来自Oracle Website

  

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

     

例如,如果您的代码包含多位数字,则可以   使用下划线字符分隔三个一组的数字,   类似于你如何使用标点符号,如逗号,或   空间,作为分隔符。

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

答案 1 :(得分:31)

请参阅Underscores in Numeric Literals

  

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

试试这个:

int num = 111_222;
System.out.println(num); //Prints 111222

这个功能之所以增加,是因为长号有时难以读取,所以不计算一个数字必须计算出的“0”,如果它是百万或十万,你可以这样做: / p>

int myNum = 1_000_000;

现在很容易看出有两组3个零,显然这个数字是百万。将其与:

进行比较

int myNum = 1000000;

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

答案 2 :(得分:4)

用于数字文字功能的JDK 7 _仅用于可读性。根据{{​​3}}:

  

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

答案 3 :(得分:3)

在Integer文字中完全忽略下划线。例如,它可以被添加到3个组中的长数字组数字(就像你在文本中那样)。