首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MissingFormatArgumentException: Format Specifier 'S'

MissingFormatArgumentException: Format Specifier 'S'

作者头像
技术小黑屋
发布2018-09-04 17:15:28
4.1K0
发布2018-09-04 17:15:28
举报

贴出一个简单的异常,分析一下原因,以及推荐一个相对好一些的替代方法。 如下,如果我们进行字符串格式化提供的值的数量少于字符串格式符(%s)的数量,就会抛出MissingFormatArgumentException异常。

错误代码

lineos:false

1 2

String format = "%s/%s"; String.format(format, "a");

崩溃信息

lineos:false

1 2 3 4 5 6

Exception in thread "main" 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) at Concatenation.testFormat(Concatenation.java:17) at Concatenation.main(Concatenation.java:4)

替代方法

相比字符串的格式化操作,使用字符串的替换更加安全,避免因为疏忽或者考虑不全等带来的崩溃问题。

lineos:false

1

String s = "%country%/%city%".replace("%country%", "China").replace("%city%", "Beijing");

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 错误代码
  • 崩溃信息
  • 替代方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档