Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,如何将字符串格式变量占位符传递给另一个字符串格式化程序?_Java_String_Format - Fatal编程技术网

在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");