Java 如何在int中添加空格?
假设我想打印100000000这个数字。乍一看,很难说这个数字代表了多少百万。是1000万还是1亿?如何使Java中的大数字看起来更具可读性?例如,像这样的东西会很棒:Java 如何在int中添加空格?,java,int,format,system.out,Java,Int,Format,System.out,假设我想打印100000000这个数字。乍一看,很难说这个数字代表了多少百万。是1000万还是1亿?如何使Java中的大数字看起来更具可读性?例如,像这样的东西会很棒:100000。你可以马上知道这个数字是1亿。你可能只想使用一个字符串。如果需要进行一些计算,只需将其保持为int,直到需要打印为止。然后,当需要打印时,将其转换为字符串,对字符串进行处理,使其尽可能可读,然后进行打印。您可以这样尝试: String.format("%.2fM", yourNumber/ 1000000.0);
100000
。你可以马上知道这个数字是1亿。你可能只想使用一个字符串。如果需要进行一些计算,只需将其保持为int,直到需要打印为止。然后,当需要打印时,将其转换为字符串,对字符串进行处理,使其尽可能可读,然后进行打印。您可以这样尝试:
String.format("%.2fM", yourNumber/ 1000000.0);
这将以该格式显示数字
1,000,000 => 1.00M
1,234,567 => 1.23M
编辑:-
我知道这是一个后期编辑,但是的,还有一个方法:
private static String[] suff = new String[]{"","k", "m", "b", "t"};
private static int MAX_LENGTH = 4;
private static String numberFormat(double d) {
String str = new DecimalFormat("##0E0").format(d);
str = str.replaceAll("E[0-9]", suff[Character.getNumericValue(str.charAt(str.length() - 1)) / 3]);
while(str.length() > MAX_LENGTH || str.matches("[0-9]+\\.[a-z]")){
str = str.substring(0, str.length()-2) + str.substring(str.length() - 1);
}
return str;
}
调用此函数,您将得到如下输出:
201700 = 202k
3000000 = 3m
8800000 = 8.8m
您也可以尝试DecimalFormat
DecimalFormat formatter = new DecimalFormat("#,###");
System.out.println(formatter.format(100000));
结果:
1000>>1,000
10000>>10,000
100000>>100,000
1000000>>1,000,000
可以使用十进制格式设置字符串的格式
DecimalFormat decimalFormat = new DecimalFormat("###,###,###");
System.out.println(decimalFormat.format(100000000));
这将打印100000000
对于其他输入-例如1000,它将打印1000使用该类,请参阅链接了解如何使用
为了省去你的搜索,我写了你基本需要的东西
DecimalFormat myFormatter = new DecimalFormat("### ### ###");
String output = myFormatter.format(value);
System.out.println(output);
以下方法如何,但在Java 7及更高版本中: int twoMillion=2_000_000
如前所述,使用十进制格式几乎是您所需要的一切。要获得您要求的确切结果,例如空格分隔千等,您需要将其与十进制符号相结合,如:
DecimalFormatSymbols customSymbols = DecimalFormatSymbols.getInstance(Locale.US);
customSymbols.setGroupingSeparator(' ');
new DecimalFormat("#,###;-#,###", customSymbols).format(value);
);“#,######-#,###”中的分号用于分隔正数和负数(必须单独定义,否则最终将全部转换为正数!)
,冒号指向一个分隔数字的位置(本例中每3位数字)
比如说,
value=12345678
输出将是
12 345 678
您可以对大数字使用下划线。@Masud OP希望在打印数字时添加空格,而不是在源代码中code@Turing85,他问了一个问题,比如
如何让Java中的大数字看起来更可读?
我帖子的第一行:假设我想打印100000000这个数字代码>