【发布时间】:2021-02-17 17:56:48
【问题描述】:
为什么这样可以正常工作?:
String f = "Mi name is %s %s.";
System.out.println(String.format(f, "John", "Connor"));
这不?:
String f = "Mi name is %s %s.";
System.out.println(String.format(f, (Object)new String[]{"John","Connor"}));
如果方法 String.format 采用可变参数对象?
它可以编译,但是当我执行此操作时,String.format() 将 vararg 对象作为单个唯一参数(数组本身的 toString() 值),因此它会引发 MissingFormatArgumentException,因为它无法与第二个字符串说明符 (%s)。
我怎样才能让它工作? 提前致谢,任何帮助将不胜感激。
【问题讨论】:
-
不确定,但您可以在不将字符串数组转换为对象的情况下进行检查吗?
标签: java string string-formatting