java - 为什么 String.format 接受 int 代替 %s?
问题描述
查看 Java String.format() 的一些参考资料,我看到他们提到它具有以下格式:
public static String format(String format, Object... args)
所以它允许我写以下内容:
String newStr = String.format("%s,%s,%s", 1, 2, 3);
但我不能这样做:
String newStr = String.format("%d,%d,%d", "1", "2", "3");
为什么我可以使用整数代替 %s 而反之则不行?它是否在进行从 int 到 string 本身的类型转换?
解决方案
是的。因为%s
它需要toString
你在那里设置的任何东西。这适用于 Java 中的所有内容(尽管可能会产生有趣的输出)。
因为%d
您需要给出一个整数类型(如Integer
,Long
或BigInteger
)。不尝试自动转换。
您可以在Javadoc中阅读有关它的更多信息(查看关于转换的部分)。
推荐阅读
- sql - Query Multiplies The Result When Selecting For One Value
- c# - How to continuously send a network stream in c#
- node.js - Outside function not calling in lambda node js exports.handler?
- html - Remove scroll bar for 100% zoom
- flowable - Flowable Enterprise trial version
- excel - Replace the Cell Value throughout the Entire Workbook
- c# - scrollbar hide behind the statusbar
- r - Plot months of multiple years
- spring - h:inputFile setter and action not invoked anymore since adding Spring Boot
- python-3.x - Converting Lemmatized output to string in data frame