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 就直接告诉你这个地方是错误的,按照要求修改下就好了。

 

https://www.ossez.com/t/java/14032

posted @ 2022-07-07 19:12  huyuchengus  阅读(184)  评论(0编辑  收藏  举报