在 Java7 中,引入了在数字字面量中使用下划线(_)来增强数字的可读性。使用下划线可以将长数字分隔成更易读的部分,而不会影响数字的值。例如:
package com.hxstrive.jdk7.base; /** * JDK7新特性之下划线 * @author hxstrive.com */ public class UnderlineDemo1 { public static void main(String[] args) { // 1. 数字下划线 int a = 1_000; System.out.println(a); // 2. 字符串下划线 String str = "Hello, _World!"; System.out.println(str); // 3. 浮点数下划线 double b = 1_000.5; System.out.println(b); } }
⚠️注意,下划线可以放在数字中的任何位置,但不能放在数字的开头或结尾,并且相邻的下划线是不允许的。例如:
int a = _10_2100; // 错误 int a = 10_2100_; // 错误 int b = 10__2100; // 正确 System.out.println(b); // 102100 int c = 10_2_100; // 正确 System.out.println(c); // 102100
如果我们将下划线和二进制字面值表示方法相结合,那么二进制字面量串看上去会更优雅,例如:
package com.hxstrive.jdk7.base; /** * JDK7新特性之下划线 * @author hxstrive.com */ public class UnderlineDemo2 { public static void main(String[] args) { int a = 0b0101_0100_0000_0111_0001_1101; int b = 0b0001_0000_0100_0010_0001_1101; System.out.println("a & b = " + (a & b)); System.out.println("a | b = " + (a | b)); System.out.println("a ^ b = " + (a ^ b)); //结果: //a & b = 1049117 //a | b = 5523229 //a ^ b = 4474112 } }
上面示例中的 0b0101_0100_0000_0111_0001_1101 是不是比 0b010101000000011100011101 看上去更好阅读和优雅。