数字文字中的下划线– Java 7功能

时间:2020-02-23 14:35:38  来源:igfitidea点击:

Java 7的功能之一是在数字文字中加下划线。
您可以在任何数字文字的数字之间放置下划线,例如int,byte,short,float,long,double。
在数字文字中使用下划线将使您可以将其分为几组,以提高可读性。

数字文字中的下划线

让我们来看一下实际使用的数字文字下划线:

package com.theitroad.util;

public class UnderscoreNumericLiterals {

	public static void main(String[] args) {
		long ccNumber = 1234_5678_9012_3456L;
		long ssn = 999_99_9999L;
		float pi = 	3.14_15F;
		long hexadecimalBytes = 0xFF_EC_DE_5E;
		long hexadecimalWords = 0xCAFE_BABE;
		long maxOfLong = 0x7fff_ffff_ffff_ffffL;
		byte byteInBinary = 0b0010_0101;
		long longInBinary = 0b11010010_01101001_10010100_10010010;
		int add = 12_3 + 3_2_1;
		System.out.println("ccNumber="+ccNumber);
		System.out.println("ssn="+ssn);
		System.out.println("pi="+pi);
		System.out.println("hexadecimalBytes="+hexadecimalBytes);
		System.out.println("hexadecimalWords="+hexadecimalWords);
		System.out.println("maxOfLong="+maxOfLong);
		System.out.println("byteInBinary="+byteInBinary);
		System.out.println("longInBinary="+longInBinary);
		System.out.println("add="+add);
	}

}

上面的程序编译正常,这是输出:

ccNumber=1234567890123456
ssn=999999999
pi=3.1415
hexadecimalBytes=-1253794
hexadecimalWords=-889275714
maxOfLong=9223372036854775807
byteInBinary=37
longInBinary=-764832622
add=444

数字文字下划线的提示

  • 下划线只能放在数字之间。

  • 您不能在小数点,L/F后缀或者基数前缀旁边添加下划线。
    因此3._14、110_L,0x_123无效,将导致编译错误。

  • 数字之间允许有多个下划线,因此12___3是有效数字。

  • 下划线不能放在下划线。
    因此123_无效并导致编译时错误。

  • 将下划线放在数字文字的前面时,会将其视为标识符,而不是数字文字。
    所以不要混淆它。

  • 在期望带数字的字符串时,不能使用下划线。
    例如Integer.parseInt(" 12_3");将抛出java.lang.NumberFormatException