我不想输入65232,而是希望它像65 232那样容易阅读。我应该插入这样的东西来格式化它。
答案 0 :(得分:1)
You can use underscores代替空格,它将接近你想要的。
int i = 65_232;
这假设您至少使用Java 7。
编译器将其视为下划线不存在,因此您可以将它们(几乎)放置在数字文字内的任何位置,这使您可以自由地设置源代码的格式。
int XD = 0__0;
答案 1 :(得分:0)
尝试这样的事情:
DecimalFormat formatter = (DecimalFormat) NumberFormat.getInstance(Locale.US);
DecimalFormatSymbols myNumber = formatter.getDecimalFormatSymbols();
symbols.setGroupingSeparator(' ');
formatter.setDecimalFormatSymbols(myNumber);
System.out.println(formatter.format(bd.longValue()));
答案 2 :(得分:0)
Java 7引入了在数字文字中使用下划线(_
)的功能。它没有任何意义,只是被Java忽略(例如,1_00
,10_0
和100
都意味着一百个),但使用它作为可视分隔符非常方便。在您的情况下:int myInt = 65_232;
。
答案 3 :(得分:0)
在 Java SE 7 及更高版本中,任意数量的下划线字符 (_) 可以出现在数字文本中数字之间的任何位置。例如,此功能使您能够将数字文本中的数字组分开,从而提高代码的可读性。
例如,如果您的代码包含具有多个数字的数字,您可以使用下划线字符将数字分成三组,类似于使用标点符号(如逗号或空格)作为分隔符的方式。
以下示例展示了在数字文字中使用下划线的其他方式:
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;
您只能在数字之间放置下划线;您不能在以下位置放置下划线:
在数字的开头或结尾
与浮点文字中的小数点相邻
在 F 或 L 后缀之前
在需要一串数字的位置
以下示例演示了数字文字中有效和无效的下划线位置(突出显示):
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