Java中的数字字面值下划线是如何工作的,以及为什么它被添加为JDK 1.7的一部分。

82

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

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

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

2
请查看技术说明 - SpaceTrucker
1
你可以在这里阅读相关信息 - http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html - Dror Bereznitsky
4个回答

96

这用于将数字分组(例如信用卡等)

Oracle网站

在Java SE 7及更高版本中,下划线字符(_)可以出现在数字文字中的任何数字之间。此功能使您能够将数字文字中的数字分组,从而可以提高代码的可读性。

例如,如果您的代码包含具有许多数字的数字,则可以使用下划线字符将数字分组为每三个一组,类似于使用标点符号(如逗号或空格)作为分隔符。

总之,这只是为了增加可读性。


53
请参见数字文字中的下划线
在Java SE 7及更高版本中,任意数量的下划线字符(_)可以出现在数字字面值中的数字之间的任何位置。此功能允许您将数字字面值中的数字分组,从而提高代码的可读性。例如,您可以使用它来分隔数字字面值中的数字组。
请尝试以下操作:
int num = 111_222;
System.out.println(num); //Prints 111222

此功能的添加是因为长数字有时很难阅读,因此不必计算数字中有多少个“零”来确定它是百万还是十万,可以这样做:

int myNum = 1_000_000;

现在很容易看出有两组3个零,并且该数字显然是百万。将其与以下内容进行比较:

int myNum = 1000000;

承认... 在这里你不得不数每一个零...


7
JDK 7的数字文字_特性仅为增加可读性而设定。根据文档
在Java SE 7或之后版本中,任何数量的下划线字符(_)都可以出现在数字文字中的数字之间,这个特性让你能够将数字文字中的数字分组,从而提高代码的可读性。

4
下划线在整数字面量中完全被忽略。例如,可以将下划线添加到长数字中的数字组中,每组包含3个数字(就像在文本中一样)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接