加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 将整数格式化为%d和%s之间有什么区别?

发布时间:2020-12-15 08:26:23 所属栏目:Java 来源:网络整理
导读:虽然两者在语法上都是有效的,但是之间应该注意以下重要的潜在差异: String result = String.format("Here is a number - %s",someIntValue); VS: String result = String.format("Here is a number - %d",someIntValue); 在两种情况下someIntValue都是int
虽然两者在语法上都是有效的,但是之间应该注意以下重要的潜在差异:

String result = String.format("Here is a number - %s",someIntValue);

VS:

String result = String.format("Here is a number - %d",someIntValue);

在两种情况下someIntValue都是int?

解决方法

有关格式化程序语法,请参阅 the documentation.

对于%s:

If arg implements Formattable,then arg.formatTo is
invoked. Otherwise,the result is obtained by invoking arg.toString().

Integer不实现Formattable,因此调用toString.

对于%d:

The result is formatted as a decimal integer

在大多数情况下,结果是相同的.但是,%d也受Locale限制.例如,在印地语中,100000将格式化为100000(Devanagari numerals)

您可以运行此简短代码段以查看具有“非标准”输出的区域设置:

for (Locale locale : Locale.getAvailableLocales())
{
    String format = String.format(locale,"%d",100_000);

    if (!format.equals("100000")) System.out.println(locale + " " + format);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读