java7新特性-关于数字的下划线分隔符



java7新特性之数字的下划线分隔符使用方法实例教程,数字类型上可以加下划线”_”的作用是什么?java7下划线分隔符的使用。

/**
* author:sustbeckham
* java7新特性,数字类型上可以加下划线”_”, 为了增强可读性。
* 不适用的地方:
* 1. 在数字的开头
* 2. 在小数点的左边或者右边
* 3. 在Long或者Float型的后缀符F或者L的左边或者右边
* 4. 不能拆散二进制八进制十六进制数字 比如原本的0X被拆成0_X
*
* 总的来说,个人觉得,这个语法的增强…有那么一丝鸡肋的意味。
**/
public class Underscore
{
public static void main(String args[]){
long creditCardNumber = 1234_5678_9012_3456L;
long socialSecurityNumber = 999_99_9999L;
float pi = 3.14_15F;
long hexBytes = 0xFF_EC_DE_5E;
long hexWords = 0xCAFE_BABE;
long maxLong = 0x7fff_ffff_ffff_ffffL;
byte nybbles = 0b0010_0101;
long bytes = 0b11010010_01101001_10010100_10010010;
// 这是一个比较好的增强可读性的例子
long bank_card = 4367_4298_4082_7152_765L;

// 但是…
//float pi1 = 3_.1415F; // Invalid; cannot put underscores adjacent to a decimal point
//float pi2 = 3._1415F; // Invalid; cannot put underscores adjacent to a decimal point
//long socialSecurityNumber1
// = 999_99_9999_L; // Invalid; cannot put underscores prior to an L suffix

//int x1 = _52; // This is an identifier, not a numeric literal
//int x2 = 5_2; // OK (decimal literal)
//int x3 = 52_; // Invalid; cannot put underscores at the end of a literal
//int x4 = 5_______2; // OK (decimal literal)

//int x5 = 0_x52; // Invalid; cannot put underscores in the 0x radix prefix
//int x6 = 0x_52; // Invalid; cannot put underscores at the beginning of a number
//int x7 = 0x5_2; // OK (hexadecimal literal)
//int x8 = 0x52_; // Invalid; cannot put underscores at the end of a number

//int x9 = 0_52; // OK (octal literal)
//int x10 = 05_2; // OK (octal literal)
//int x11 = 052_; // Invalid; cannot put underscores at the end of a number
}
}