71

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

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

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

4 回答 4

88

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

甲骨文网站

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

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

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

于 2013-11-06T07:52:18.237 回答
45

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

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

试试这个:

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

添加此功能是因为有时很难读取长数字,因此您可以执行以下操作:

int myNum = 1_000_000;

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

int myNum = 1000000;

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

于 2013-11-06T07:51:43.543 回答
6

JDK 7_的数字文字功能只是为了便于阅读。根据文档

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

于 2013-11-06T07:51:20.057 回答
4

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

于 2013-11-06T07:52:03.300 回答