为什么 String.format 接受整数代替 %s?
Why does String.format accept ints in place of %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
)。未尝试自动转换。
您可以在 the Javadoc 中阅读更多相关信息(查看关于转化的部分)。
查看 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
)。未尝试自动转换。
您可以在 the Javadoc 中阅读更多相关信息(查看关于转化的部分)。