MissingFormatArgumentException: Format specifier: s 的解决办法
今天笔者的Android APP在运行的时候,出现了一个运行时错误,错误信息的摘要如下:
MissingFormatArgumentException: Format specifier: s
1 java.util.Formatter.getArgument(Formatter.java:1111)
2 java.util.Formatter.doFormat(Formatter.java:1076)
3 java.util.Formatter.format(Formatter.java:1042)
4 java.util.Formatter.format(Formatter.java:1011)
5 java.lang.String.format(String.java:1803)
6 java.lang.String.format(String.java:1777)
翻译过来的意思是:缺少格式化参数,这个参数试图格式化为s。在java程序中,涉及到格式化参数的一般就是System.out.format或者String.format 两个函数,一般前者很少用到,后者却经常使用,用于字符串拼接流程。
顺着日志,我们发现这么一行代码:
String.format("xx_%d_%s",a);
由于字符串:xx_%d_%s
要求两个参数,而只赋值了一个a的参数,因此报:缺少参数的错误。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭