Java 代码中数字中间带下划线是几个意思
见过下面的代码吗?
List strings = IntStream.rangeClosed(1, 10_000_000).mapToObj(Integer::toString).collect(toList());
在数字中间还带有一个下划线,这是几个意思?
官方解答
官方的说法来了,在页面: Underscores in Numeric Literals 中进行了说明。
简单来说就是从 Java SE 7 的版本开始,程序中的数字可以使用下划线来进行分割(_
)以便于为程序提供更好的可读性。
你可以对一个比较长的数字,使用下划线来进行分隔,以便于你不会数错 0。
我们的理解就是 JDK 在编译的时候,将会对数字中间的下划线进行处理,应该就是简单的替换掉下划线了。
例如我们常用的使用逗号作为千分符,这里直接使用下划线代替就可以了。
在使用的时候也是有一些限制的,不是随便都行的。
使用的限制是:
- 不能在数字的开头和结尾使用,说人话就是不能以下划线开头和结尾。
- 不能在小数点的前后使用。
- 不能在使用 F 和 L 为后缀之前使用。
官方文档中也列出一些常用的用例。
如果你使用 IDE 的话,也不用担心,如果语法是错误的,IDE 会给出提示的。
和上面的图一样,IDE 就直接告诉你这个地方是错误的,按照要求修改下就好了。