偶然发现一个问题,在使用String.format进行格式化输出时,发现参数个数不匹配时,会抛出异常,如
1 | String msg = String.format("hello %s, %s", "a"); |
上面这个执行之后,会抛MissingFormatArgumentException
异常,提示信息如
1 | java.util.MissingFormatArgumentException: Format specifier '%s' |
那么这个问题可以如何规避呢?
方法一:
- 补全缺的参数
思路主要是统计出需要有多少个参数,当参数较少时,主动补上缺,保证参数一致
注意事项
- 补全的参数类型,需要满足要求
- 输出结果可能并不是预期的
方法二:
- 重写
java.util.Formatter#format(java.util.Locale, java.lang.String, java.lang.Object...)
逻辑
实现格式化的核心代码在这里
1 | switch (index) { |
考虑在这里进行适配即可;具体的实现,后续补上
II. 其他
1. 一灰灰Blog: https://liuyueyi.github.io/hexblog
一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛
2. 声明
尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
- 微博地址: 小灰灰Blog
- QQ: 一灰灰/3302797840
3. 扫描关注
一灰灰blog