在Java中,如何将字符串格式变量占位符传递给另一个字符串格式化程序?
我有这样一个字符串格式化程序:在Java中,如何将字符串格式变量占位符传递给另一个字符串格式化程序?,java,string,format,Java,String,Format,我有这样一个字符串格式化程序: String testLogMessage = String.format("testing %s scenario %s", "BIG"); logger.info(String.format(testLogMessage, 1)); 我有几个测试,想在testLogMessage中传递一个数字。在运行时,我得到以下异常: java.util.MissingFormatArgumentException: Format specifier '%s' a
String testLogMessage = String.format("testing %s scenario %s", "BIG");
logger.info(String.format(testLogMessage, 1));
我有几个测试,想在testLogMessage中传递一个数字。在运行时,我得到以下异常:
java.util.MissingFormatArgumentException: Format specifier '%s'
at java.util.Formatter.format(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.lang.String.format(Unknown Source)
我可以使用第二个字符串格式化程序,但还有其他方法吗?第一次调用
string.format
要求两个占位符都满足要求,但您只传递一个值,提示异常
要使生成的字符串包含下一次调用string.format
的占位符,可以使用另一个%
符号
“%”百分比结果为文本“%”(“\u0025”)
这将导致字符串“testing BIG scenario%s”
,您可以在第二个string.format
调用中使用该字符串。您希望它是%d
,这样您就可以传递int
String testLogMessage = String.format("testing %s scenario %%d", "BIG");
String testLogMessage = String.format("testing %s scenario %%d", "BIG");